我试图从我连接到我的电脑的麦克风使用matlab获得频率响应曲线。获取我的麦克风的频率响应
我觉得我非常接近最终的代码,但我想我错过了一些东西。
这就是我现在所拥有的:
close all, clear all, clc
x = 5; % seconds recording
Fs = 44100; % Sampling frequency
T = 1/Fs; % Sample time
L= x*1000; % Length of signal
t = (0:L-1)*T; % Time vector
% Record your voice for 'x' seconds.
recObj = audiorecorder(Fs, 24, 1);
disp('Start of Recording.');
recordblocking(recObj, x);
disp('End of Recording.');
% Store data in double-precision array.
myRecording = getaudiodata(recObj);
NFFT = 2^nextpow2(L); % Next power of 2 from length of y
fourier = fft(myRecording);
Y = fft(myRecording,NFFT)/L;
f = Fs/2*linspace(0,1,NFFT/2+1);
X = 2*abs(Y(1:NFFT/2+1));
samples = get(recObj,'TotalSamples');
plot(f,X)
title('Single-Sided Amplitude Spectrum)
xlabel('Frequency (Hz)')
ylabel('|Y(f)|')
的这部分代码是正确的,我认为。 例如,当我玩的5kHz的语气我得到这个情节:
现在我玩粉红噪声,并添加代码,将其转换为dB的这一小部分,所以我可以得到的频率响应曲线:
dbX = db(X);
plot(f,dbX)
我希望(或我的目标是..)的频率响应曲线(你可以找到关于谷歌的图像,例如,我没有超过2个链接足够的声誉,很抱歉我没”这里使用图片链接),但我得到了这个:
显然我做错了什么,但我不知道是什么..
嗡嗡声,我不太了解这个,但是,为什么粉红噪声频率图错误?你在期待什么? –
我的目标是得到这样的东西:http://www.acoustics.salford.ac.uk/acoustics_info/microphones/microphones_files/image013.jpg 煤矿甚至不在0dB左右,或者不是一条扁平线或某种东西.. –
这只是一个缩放的问题,信号。还要注意情节说'相对响应'。 – mpaskov