本人5月6日购买联想拯救者r9000p 3060版本电脑,4月19日生产日期,华星光电屏幕,三星内存显存,海力士固态,ax200网卡。后发现网上很多r9000p存在无风扇转动情况下啸叫问题。此电脑未出现这种情况,但显卡满载时出现啸叫声。我看有些人说没听见是因为耳朵灵敏性降低的缘故,突然想到能否通过外界手段判断是否有啸叫,并且我想分析一下次啸叫的频率特性。
实验材料:此电脑(r9000p);bios:34ww,36ww都有;录音器:小米11,wav挡位录音。
录音文件:baidu网盘/s/1YRcTlNTWmQQXyiDPhHun6g 提取1234
总共有10个音频文件,分别是file1~file10
代码如下在本文最后。
file456是36ww的bios(实际上无所谓,此bios也只是控制最低转速,满载与34ww无区别,两者可得出同一结论),file12是安装matlab时录的,file378是风扇不转时,其余满载录音是游戏和烤机时录的。程序中去除了每段录音的开始1s和最后1s使波形稳定。
1、先看看file378,无风扇时:
file3 开机时频域图
file7 表面1-时频域图
file8 表面2-时频域图
可以看出基本上是几百Hz的低频与超过20kHz人耳无法听见的超声,基本可以得出本台实验电脑不存在啸叫或啸叫声极小的结论。
2、file456,显卡满载时,可以明显听出啸叫声:
file4 满载上方啸叫
file5 满载右侧出风口
file6 满载左侧出风口
可以明显看出有几个频率左右比较突出,分别是2200Hz,2700Hz,5000Hz。面板上方和左侧出风口5000Hz幅值较大,右侧出风口2000多Hz比5000Hz峰值更大,但两种情况的能量分布都以低频与2500Hz为主,但突出5000Hz是啸叫刺耳声音的主要频率,大家可以找个软件听听此频率。
3、代码的最后一段模拟了2200Hz,2700Hz,5000Hz三者单音正弦信号以1:1:2幅值叠加的一段音频,完美再现了“纯净”的啸叫声,有兴趣可以跑跑看。
代码:
clear;clc;close all;
file1 = '安装matalb右侧-风扇转.wav';
file2 = '安装matlab左侧-风扇转.wav';
file3 = '开机.wav';
file4 = '满载-上方-啸叫.wav';
file5 = '满载-右边出风口-啸叫.wav';
file6 = '满载-左侧出风口-啸叫.wav';
file7 = '无风扇-表面1.wav';
file8 = '无风扇-表面2.wav';
file9 = '显卡满速-左侧出风口.wav';
file10 ='显卡满速-左侧面板.wav';
[xx,fs] = audioread(file6); %fs:采样频率,也是每秒采样点数
x = xx(:,1); %取单边声道
Ts = 1/fs; %采样时间
s_time = 1; %起始时间:1秒后
e_time = (length(x)-fs)*Ts; %结束时间:倒数前一秒
t = s_time:Ts:e_time; %信号时间轴
%%
Noise = x(s_time*fs:e_time*fs);
figure(1);
subplot(2, 1, 1);
plot(t, Noise);
xlabel('t/s','FontSize',22);
ylabel('幅度','FontSize',22);
N = length(Noise); %采样点数
f_index = (-N/2:(N-1)/2)*(fs/N); %频域轴(Hz)
fft_Noise = abs(fftshift(fft(Noise))).*2/N;
subplot(2, 1, 2);
plot(f_index,fft_Noise,'LineWidth',2);
title('噪声信号频域图','FontSize',22);
xlabel('Hz','FontSize',22);
% player = audioplayer([Noise Noise],fs);
% play(player);
time = 0:Ts:3;
f1 = 2200;
f2 = 2700;
f3 = 5000;
S = 0.5*sin(2*pi*f1*time)+0.5*sin(2*pi*f2*time)+sin(2*pi*f3*time);
player = audioplayer([S' S'],fs);
% play(player);