matlab fft simulink,matlab – 从SIMULINK到工作区FFT?

如果我想在Matlab中绘制一个简单的正弦波的PSD,我会做如下的事情:

Fs = 1000;

t = 0:1/Fs:1-(1/Fs);

x = cos(2*pi*100*t) ;

N = length(x);

xdft = fft(x);

xdft = xdft(1:N/2+1);

psdx = (1/(Fs*N)) * abs(xdft).^2;

psdx(2:end-1) = 2*psdx(2:end-1);

freq = 0:Fs/length(x):Fs/2;

plot(freq,10*log10(psdx))

grid on

但是,为简单起见,我在SIMULINK中有一个正弦波发生器,我需要绘制PSD.我做了类似以下的事情:

ai9dl.png

然后我得到了一个名为“Sinwave”的变量,我怎么可能应用上面的Matlab代码来绘制PSD?

请注意,变量Sinewave是1×1双倍时间序列.我试图用Sinwave替换x,但它没有用.

更新:应用答案

我应用了推荐的内容,但是我的输出与使用Matalb的输出不同.这是我使用的代码:

Fs = 1000;

x = Sinwave.Data;

N = length(x);

dft = fft(x);

dft = dft(1:N/2+1);

psd = (1/(Fs*N)) * abs(dft).^2;

psd(2:end-1) = 2*psd(2:end-1);

freq = 0:Fs/length(x):Fs/2;

plot(freq,10*log10(psd))

grid on

这个用于SIMULINK导出的正弦波

Dh8Ng.jpg

但是,来自matlab代码的代码如下:

myZ7v.jpg

我需要输出来自matalb,在噪声层中具有所有这些涟漪.如何获得准确的输出?

请注意我已经使用了两者的确切值.

更新2:SIMULINK正弦波设置

1-正弦波块

Yxdjm.png

2-到工作区块

L1QnS.png

3-解算器

HAIMU.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值