|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
信号加窗后进行fft变换,有两个问题请教
1、加窗后在50赫兹的旁边,49和51的位置有两个小的。不知道是不是和加窗有关。与此同时相位谱上面的相应位置的相位差了180,不知道各位大神有没有什么方法帮忙解决一下那俩小的。
2、加窗会对相位图产生影响吗?我这个如果加窗,那么相位图会规则一些,不加的话就是乱七八糟的。但是50和150那里对应的相位没有变化。请教原因。
clc;
close all;
clear;
A1=20; %频率F1信号的扰动幅度
A2=19; %频率F2信号的扰动幅度
F1=50; %信号1频率(Hz)
F2=50; %信号2频率(Hz)
Fs=12800; %采样频率(Hz)
P1=30; %信号1相位(度)
P2=30.001; %信号2相位(度)
N=12800; %采样点数
t=[0:1:N-1]/Fs; %采样时刻
%信号
H=220*sqrt(2)*cos(2*pi*F1*t+60*pi/180)+A1*sqrt(2)*cos(2*pi*3*F1*t+pi*P1/180);
H1=220*sqrt(2)*cos(2*pi*F2*t+60.01*pi/180)+A2*sqrt(2)*cos(2*pi*3*F2*t+pi*P1/180);
%加窗
S=hamming(N)'.*H(1:N);
S1=hamming(N)'.*H1(1:N);
figure(1)
%显示原始信号
subplot(321);plot(t,H);
title('标准信号');
subplot(322);plot(t,H1);
title('被测信号');
%信号加窗
subplot(323);plot(t(1:N),S(1:N));
title('标准信号加窗');
subplot(324);plot(t(1:N),S1(1:N));
title('被测信号加窗');
Y = fft(S,N); %做FFT变换
Y1=fft(S1,N);
fuzhi = (abs(Y)); %取模
fuzhi1=(abs(Y1));
fuzhi=fuzhi*1.852/(N/2); %换算成实际的幅度
F=([1:N]-1)*Fs/N; %换算成实际的频率值,Fn=(n-1)*Fs/N f=fs*(0:length(Y)/2)/length(Y);
subplot(325);stem(F(1:N/2),fuzhi(1:N/2)); %显示换算后的FFT模值结果
title('幅度-频率曲线图');
fuzhi1=fuzhi1*1.852/(N/2); %换算成实际的幅度
F=([1:N]-1)*Fs/N; %换算成实际的频率值,Fn=(n-1)*Fs/N
subplot(326);stem(F(1:N/2),fuzhi1(1:N/2)); %显示换算后的FFT模值结果
title('幅度-频率曲线图');
Pyy=[1:N/2];
for i=1:N/2
xiangwei(i)=phase(Y(i)); %计算相位
xiangwei(i)=xiangwei(i)*180/pi; %换算为角度
end;
figure(2)
Hline1=stem(F(1:N/2),xiangwei(1:N/2)); %显示相位图
hold on;
Pyy1=[1:N/2];
for i=1:N/2
xiangwei1(i)=angle(Y1(i)); %计算相位
xiangwei1(i)=xiangwei1(i)*180/pi; %换算为角度
end;
Hline2=stem(F(1:N/2),xiangwei1(1:N/2),'r'); %显示相位图
title('相位-频率曲线图'); |
|