频谱选带与细化分析两个小例子

更新时间:2023-07-20 19:55:26 阅读: 评论:0

频谱选带与细化分析两个⼩例⼦
频谱选带与细化分析两个⼩例⼦
解:
利⽤matlab编程,得出图9-1所⽰结果
(a)信号采样图
(b)参与FFT为64点频谱图
(c)参与FFT为128点频谱图
(d)参与FFT为256点频谱图
(e)参与FFT为64点补零⾄256点频谱图
(f)参与FFT为128点补零⾄256点频谱图
图9-1 第9章第1题各结果图⽰
作出⼀个周期内各幅值谱图如图9-1所⽰。
⽐较图(b)参与FFT为64个点,(c)参与FFT为128个点,(d)参与FFT为256个点。图(b)只有⼀个峰值,峰较宽;图(c)也只有⼀个峰值,峰较窄;图(d)有三个峰值,峰更窄。显然只有图(d)能分辨出信号中有三个频率
(49Hz,50Hz,51Hz)。容易得出,随着参与点数增加,分辨率越来越⾼,这个是显然的。
⽐较图(b)参与FFT为64点频谱图,图(e)参与FFT为64点补零⾄256点频谱图,可以发现,补零之后的频谱分辨率提⾼了,但造成谱形失真。
⽐较图(c)参与FFT为128点频谱图和图(f)参与FFT为128点补零⾄256点频谱图。可以发现,补零之后的频谱分辨率提⾼了,能⼤致分辨出三个峰值,但造成谱形失真。
蓝色生死恋主题曲⽐较图(e)参与FFT为64点补零⾄256点频谱图和图(f)参与FFT为128点补零⾄256点频谱图。图(e)失真更严重,因此补零越多,失真越厉害。
on call该题的Matlab代码如下:
给领导送礼clear;clc;
%信号采样,采样频率128Hz,采样点数256
Fs=128;
N=256;
n=0:N-1;
t=n/Fs;
x=100*cos(2*pi*50*t)+150*cos(2*pi*51*t)+50*cos(2*pi*49*t);
subplot(3,2,1);
plot(t,x) %画出采样信号
xlabel('t/s'); ylabel('Amplitude'); title('信号采样图');
%参与FFT点数为64
N1=64;
y1=fft(x(1:N1));%对信号进⾏快速Fourier变换
amp1=abs(y1)*2/N1;%求Fourier变换振幅
f=n(1:N1)*Fs/N1;
subplot(3,2,3);
plot(f(1:N1/2),amp1(1:N1/2))
xlabel('f/Hz'); ylabel('Amplitude1'); title('参与FFT点64频谱图'); %参与FFT点数为128
N2=128;
y2=fft(x(1:N2));
amp2=abs(y2)*2/N2;
f=n(1:N2)*Fs/N2;
subplot(3,2,5);
ecr
plot(f(1:N2/2),amp2(1:N2/2))
xlabel('f/Hz'); ylabel('Amplitude2'); title('参与FFT点128频谱图'); %参与FFT点数为256
y3=fft(x(1:N));%对信号进⾏快速Fourier变换
amp3=abs(y3)*2/N;%求Fourier变换振幅
f=n(1:256)*Fs/N;
subplot(3,2,2);
plot(f(1:N/2),amp3(1:N/2))
xlabel('f/Hz'); ylabel('Amplitude3'); title('参与FFT点256频谱图'); %对64个点样本补零增为256点后,进⾏FFT变换
x1=[x(1:64),zeros(1,192)];
y4=fft(x1);
没离开过 英文amp4=abs(y4)*2/N1;
f=n(1:256)*Fs/N;
underreviewsubplot(3,2,4);
plot(f(1:N/2),amp4(1:N/2))
xlabel('f/Hz'); ylabel('Amplitude4'); title('参与FFT点64补零⾄256频谱图') %对128个点样本补零增为256点后,进⾏FFT变换x1=[x(1:128),zeros(1,128)];
y5=fft(x1);
amp5=abs(y5)*2/N2;
f=n*Fs/N;
subplot(3,2,6);
xlabel('f/Hz'); ylabel('Amplitude5'); title('参与FFT点128补零⾄256频谱图');
解:
利⽤matlab编程,得出图9-2所⽰结果
(a)信号采集图
(b)全景频谱图
(c)细化后频谱图
图9-2 第9章2题结果图⽰
表9-1 计算结果
参数理论值FFT谱细化谱频率(Hz)84.6 84.0000 84.6000 幅值100 85.7550 99.8996 相位(度)54 107.1010 65.4522
观察图9-2易知细化后的谱图更加清楚。通过表9-1中的计算结果,易知,细化谱的频率(Hz)、幅值、相位(度)与理论值更加接近,细化的⽬的达到。
该题Matlab代码如下:
clear;clc;
%信号采样,采样频率Fs=256Hz,采样点数N=128
Fs=256;
N=128;
n=0:N-1;
t=n/Fs;
x=100*cos(2*pi*84.6*t+0.3*pi);
%画信号采样图
subplot(3,1,1);
plot(t,x)
xlabel('t/s'); ylabel('Amplitude1'); title('信号采样图');
%全景FFT变换
ino
y1=fft(x);%对信号进⾏快速Fourier变换
amp1=abs(y1).*2./N;%求Fourier变换振幅(需要将结果的绝对值乘以2除以N)Theta1=angle(y1)*180/pi;%计算相位
% Theta1=atan(imag(y1)./real(y1));
grammarkmax1=find(amp1==max(amp1)); %找出幅值最⼤的序列下标值
f=n*Fs/N;%归⼀化频率轴
%作全景幅值谱图
subplot(3,1,2);
xlabel('f/Hz'); ylabel('Amplitude2');title('全景频谱图');
fprintf(' 全景幅值谱图最⼤幅值为:%3.4f\n ',amp1(kmax1(1)))
fprintf('全景幅值谱图最⼤幅值处频率为:%3.4fHz\n ',f(kmax1(1)))
fprintf('全景幅值谱图最⼤幅值处相位为:%3.4f度\n ',Theta1(kmax1(1)));
万事如意英文%对82~86Hz之间进⾏频谱细化,取谱线条数为41条
fx=82:0.1:86;%取41条频率
for i=1:length(fx)
af(i)=2/N*x*cos(2*pi*(1:N)*fx(i)/Fs)';%计算a(f)的值,即实部
关于包粽子的作文
bf(i)=2/N*x*sin(2*pi*(1:N)*fx(i)/Fs)';%计算b(f)的值,即虚部
amp2(i)=sqrt(af(i)^2+bf(i)^2);%计算幅值
Theta2(i)=angle(af(i)+bf(i)*1i)*180/pi;%计算相位
% Theta2(i)=atan((-bf(i))/af(i));
end
kmax2=find(amp2==max(amp2)); %找出幅值最⼤的序列下标值
fprintf('对82~86Hz频谱细化后的最⼤幅值为:%3.4f\n ',amp2(kmax2(1)))
fprintf('对82~86Hz频谱细化后的最⼤幅值处频率为:%3.4fHz\n ',fx(kmax2(1))) fprintf('对82~86Hz频谱细化后的最⼤幅值处相位为:%3.4f度\n ',Theta2(kmax2(1))) subplot(3,1,3);
plot(fx,amp2)
xlabel('f/Hz'); ylabel('Amplitude3');title('细化后频谱图');

本文发布于:2023-07-20 19:55:26,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/1107534.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:频谱   细化   补零   幅值   采样   信号   参与
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图