f1=(0:length(y)/2-1)'*10000/length(y);%计算变换后不同点对应的幅值,ff=10000*(0:499)/1000; %计算变换后不同点对应的频率值 。这两句话是什么意思?我的分没有了,请大家帮帮我吧。
源代码是
t=0:0.0001:0.1; %时间间隔为0.0001,说明采样频率为10000Hz
x=square(2*pi*1000*t); %产生基频为1000Hz的方波信号
n=randn(size(t)); %白噪声
f=x+n; %在信号中加入白噪声
figure(1);
subplot(2,1,1);
plot(f); %画出原始信号的波形图
ylabel('幅值(V)');
xlabel('时间(s)');
title('原始信号');
y=fft(f,1000); %对原始信号进行离散傅里叶变换,参加DFT采样点的个数为1000
subplot(2,1,2);
m=abs(y);
f1=(0:length(y)/2-1)'*10000/length(y);%计算变换后不同点对应的幅值
plot(f1,m(1:length(y)/2));
ylabel('幅值的模');
xlabel('时间(s)');
title('原始信号傅里叶变换');
%用周期图法估计功率谱密度
p=y.*conj(y)/1000; %计算功率谱密度
ff=10000*(0:499)/1000; %计算变换后不同点对应的频率值
figure(2);
plot(ff,p(1:500));
ylabel('幅值');
xlabel('频率(Hz)');
title('功率谱密度(周期图法)');
我就是问注释是如何理解的,不需要再重新复制一遍了~
关于matlab DFT 功率谱代码的问题
答案:2 悬赏:0 手机版
解决时间 2021-02-25 19:25
- 提问者网友:留有余香
- 2021-02-25 07:32
最佳答案
- 五星知识达人网友:冷風如刀
- 2021-02-25 09:07
t=0:0.0001:0.1; %时间间隔为0.0001,说明采样频率为10000Hz
x=square(2*pi*1000*t); %产生基频为1000Hz的方波信号
n=randn(size(t)); %白噪声
f=x+n; %在信号中加入白噪声
figure(1);
subplot(2,1,1);
plot(f); %画出原始信号的波形图
ylabel('幅值(V)');
xlabel('时间(s)');
title('原始信号');
y=fft(f,1000); %对原始信号进行离散傅里叶变换,参加DFT采样点的个数为1000
subplot(2,1,2);
m=abs(y);
f1=(0:length(y)/2-1)'*10000/length(y);%计算变换后不同点对应的幅值
plot(f1,m(1:length(y)/2));
ylabel('幅值的模');
xlabel('时间(s)');
title('原始信号傅里叶变换');
%用周期图法估计功率谱密度
p=y.*conj(y)/1000; %计算功率谱密度
ff=10000*(0:499)/1000; %计算变换后不同点对应的频率值
figure(2);
plot(ff,p(1:500));
ylabel('幅值');
xlabel('频率(Hz)');
title('功率谱密度(周期图法)');
x=square(2*pi*1000*t); %产生基频为1000Hz的方波信号
n=randn(size(t)); %白噪声
f=x+n; %在信号中加入白噪声
figure(1);
subplot(2,1,1);
plot(f); %画出原始信号的波形图
ylabel('幅值(V)');
xlabel('时间(s)');
title('原始信号');
y=fft(f,1000); %对原始信号进行离散傅里叶变换,参加DFT采样点的个数为1000
subplot(2,1,2);
m=abs(y);
f1=(0:length(y)/2-1)'*10000/length(y);%计算变换后不同点对应的幅值
plot(f1,m(1:length(y)/2));
ylabel('幅值的模');
xlabel('时间(s)');
title('原始信号傅里叶变换');
%用周期图法估计功率谱密度
p=y.*conj(y)/1000; %计算功率谱密度
ff=10000*(0:499)/1000; %计算变换后不同点对应的频率值
figure(2);
plot(ff,p(1:500));
ylabel('幅值');
xlabel('频率(Hz)');
title('功率谱密度(周期图法)');
全部回答
- 1楼网友:天凉才是好个秋
- 2021-02-25 09:57
你把下面的复制到matlab 命令行,结果就出来了,噢也
clear
clc
close all
f=2 %基波为2hz
t=1/f;
t=linspace(0,t,64);
xn=2*sin(4*pi*t)+5*cos(8*pi*t); %64点采样
yn=fft(xn) %快速fft
phase=rad2deg(angle(yn));
phase(34:64)=[];
mag=2*abs(yn)/64;
mag(1)=mag(1)/2;
mag(33)=mag(33)/2;
mag(34:64)=[];
k=0:32; %从直流画到32次谐波
subplot(2,1,1)
bar(k,mag)
title('幅度谱')
subplot(2,1,2)
bar(k,phase)
title('相位谱')
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯