3. 绘制振幅频谱图
[plain] view plaincopy
%Y = fft(X) 使用快速傅里叶变换算法返回向量X的离散型傅里叶变换
%Y = fft(X,n) 返回n点的离散傅里叶变换,如果向量X的长度小于n,函数要将向量X补零到长度n;如果向量X的长度大于n, 则函数阶段X使之长度为n。若X是矩阵,按相同方法对X进行处理。
Y = fft(ft,sigLength);
halfLength = floor(sigLength/2);
Pyy =Y(1:halfLength + 1); % 只选取前半截部分
波形的傅里叶变换返回震级和相位信息,并且用复数的形式表达,通过计算绝对值来获取其频率的振幅
[plain] view plaincopy
Pyy = abs(Pyy);%用于计算复向量的Y的振幅
f = ((0:halfLength)+1)* Fs/sigLength;
subplot(2,1,2);
plot(f,Pyy), title('Frequency spectrum'),grid;
xlabel('Frequency(Hz)');
ylabel('Amplitude');
>> Y = fft(left,leftSigLength);
>> halfLength = floor(leftSigLength/2);
>> Pyy =Y(1:halfLength + 1);
>> Pyy = abs(Pyy);%用于计算复向量的Y的振幅
>> f = ((0:halfLength)+1)* Fs/leftSigLength;
>> plot(f,Pyy), title('Frequency spectrum'),grid;
>> xlabel('Frequency(Hz)');
ylabel('Amplitude');
>> Yabs=abs(Y);
>> figure;plot(Yabs)
>> f(1)
ans =
0.413060582218725
>> Fs
Fs =
44100
>> Fs/leftSigLength
ans =
0.413060582218725
>> f(end)
ans =
2.205041306058222e+004
>> f(end)-Fs/leftSigLength
ans =
22050
>>
[plain] view plaincopy
%Y = fft(X) 使用快速傅里叶变换算法返回向量X的离散型傅里叶变换
%Y = fft(X,n) 返回n点的离散傅里叶变换,如果向量X的长度小于n,函数要将向量X补零到长度n;如果向量X的长度大于n, 则函数阶段X使之长度为n。若X是矩阵,按相同方法对X进行处理。
Y = fft(ft,sigLength);
halfLength = floor(sigLength/2);
Pyy =Y(1:halfLength + 1); % 只选取前半截部分
波形的傅里叶变换返回震级和相位信息,并且用复数的形式表达,通过计算绝对值来获取其频率的振幅
[plain] view plaincopy
Pyy = abs(Pyy);%用于计算复向量的Y的振幅
f = ((0:halfLength)+1)* Fs/sigLength;
subplot(2,1,2);
plot(f,Pyy), title('Frequency spectrum'),grid;
xlabel('Frequency(Hz)');
ylabel('Amplitude');
>> Y = fft(left,leftSigLength);
>> halfLength = floor(leftSigLength/2);
>> Pyy =Y(1:halfLength + 1);
>> Pyy = abs(Pyy);%用于计算复向量的Y的振幅
>> f = ((0:halfLength)+1)* Fs/leftSigLength;
>> plot(f,Pyy), title('Frequency spectrum'),grid;
>> xlabel('Frequency(Hz)');
ylabel('Amplitude');
>> Yabs=abs(Y);
>> figure;plot(Yabs)
>> f(1)
ans =
0.413060582218725
>> Fs
Fs =
44100
>> Fs/leftSigLength
ans =
0.413060582218725
>> f(end)
ans =
2.205041306058222e+004
>> f(end)-Fs/leftSigLength
ans =
22050
>>