基于matlab的连续信号的频谱分析

问题描述:

基于matlab的连续信号的频谱分析
怎么在matlab中对连续信号X(t)=COS(4*pi*t)+SIN(2*pi*t)+COS(8*pi*t)进行DFT变换 .要求画出X(exp(jw))与f的频谱图.抽样间隔随意
1个回答 分类:综合 2014-11-08

问题解答:

我来补答
给个例题,自己变一下就好
fs=1000;%设定采样频率
N=1024;%设定数据长度
i=0:N-1;
t=i/fs;
f=100;%设定正弦信号频率
%生成正弦信号
x=sin(2*pi*f*t);
subplot(231);
plot(t,x);%作正弦信号的时域波形
axis([0,0.01,-1,1]);
xlabel('t');
ylabel('y');
title('正弦信号时域波形');
grid;
%进行FFT变换并做频谱图
y=fft(x,N);%进行fft变换
mag=abs(y);%求幅值
f=(0:N-1)*fs/N;%横坐标频率的表达式为f=(0:M-1)*Fs/M;
subplot(232);
plot(f,mag);%做频谱图
axis([0,100,0,80]);
xlabel('频率(Hz)');
ylabel('幅值');
title('正弦信号幅频谱图');
grid;
%求均方根谱
sq=abs(y);
figure(1);
subplot(233);
plot(f,sq);
xlabel('频率(Hz)');
ylabel('均方根谱');
title('正弦信号均方根谱');
grid;
%求功率谱
power=sq.^2;
figure(1);
subplot(234);
plot(f,power);
xlabel('频率(Hz)');
ylabel('功率谱');
title('正弦信号功率谱');
grid;
%求对数谱
ln=log(sq);
figure(1);
subplot(235);
plot(f,ln);
xlabel('频率(Hz)');
ylabel('对数谱');
title('正弦信号对数谱');
grid;
%用IFFT恢复原始信号
xifft=ifft(y);
magx=real(xifft);
ti=[0:length(xifft)-1]/fs;
subplot(236);
plot(ti,magx);
xlabel('t');
ylabel('y');
title('通过IFFT转换的正弦信号波形');
grid;
 
 
展开全文阅读
剩余:2000
上一页:希望高人解答