实用标准文案
Matlab 傅里叶变换傅里叶逆变换
%% 信号经过傅里叶变换然后进行傅里叶逆变换后信号的变化 | ||
clear all ;clc; | ||
% Author&Date-- | ||
%Author: | ||
%Date: 2013/07/31 | ||
%============== | ||
Fs=8e3; | %采样率 | |
t=0:1/Fs:1; | %采样点 | |
len=length(t); | %采样长度 | |
f1=10; | %频率1 | |
f2=100; | %频率2 | |
f3=1000; | %频率3 | |
A1=1; | %幅度1 | |
A2=0.8; | %幅度2 | |
A3=0.3; | %幅度3 | |
MaxS=A1+A2+A3; | %信号幅度的最大值 | |
signal=A1*sin(2*pi*f1*t)+A2*sin(2*pi*f2*t)+A3*sin(2*pi*f3*t); | ||
X=fft(signal,len); | %傅里叶变换 | |
magX=abs(X); | %信号的幅度 | |
matlab求傅里叶变换 |
angX=angle(X); | %信号的相位 | |
Y=magX.*exp(1i*angX); % 信号的频域表示 | ||
y=ifft(Y,len); | %信号进行傅里叶逆变换 | |
y=real(y); | ||
er=signal-y; | %原始信号和还原信号的误差 | |
subplot(311);plot(t,signal);axis([0 1 -MaxS MaxS]);xlabel( | '时间 ');ylabel( '振幅 ');title( '原始信号 '); | |
subplot(312);plot(t,y);axis([0 1 -MaxS MaxS]);xlabel( | '时间 ');ylabel( '振幅 ');title( '还原信号 '); | |
subplot(313);plot(t,er);xlabel( '时间 ');ylabel( '振幅 ');title( '误差 '); | ||
% End Script | ||
精彩文档
实用标准文案
原始信号
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论