超级大玉米 2021-11-29 06:57 采纳率: 73.7%
浏览 32
已结题

问一下程序是否正确?有何遗漏

clear
T=1
t=linspace(0,T,1000);
triang=zeros(size(t));

max_harmonics=10;
a=zeros(1,max_harmonics+1);
b=zeros(1,max_harmonics+1);
synth_triang=zeros(size(t));
for n =0:max_harmonics
if mod (n,10)
b(n+1)=1/n;
synth_triang=synth_triang+b(n+1)sin(2pin(1/T)t);
end
end
t=linspace(0,10
T,10*1000);
triang=repmat(triang,10,10);
synth_triang=repmat(synth_triang,10,10);
plot(t,triang,'b-',t,synth_triang,'r--')
legend('Triangular wave', 'Synthesised triangular wave')

img


将这个号函数进行合成

还想加一个显示频谱图的程序不知道怎么加

  • 写回答

1条回答 默认 最新

  • 技术专家团-Joel 2021-11-29 10:44
    关注

    你好大玉米同学,给你的程序改了两处:
    第一是奇偶判断,第二是repmat那个地方

    clear
    T=1;
    t=linspace(0,T,1000);
    triang=zeros(size(t));
    
    max_harmonics=10;
    a=zeros(1,max_harmonics+1);
    b=zeros(1,max_harmonics+1);
    synth_triang=zeros(size(t));
    for n =0:max_harmonics
        if mod(n,2)==1 % 这里奇数进行计算
            b(n+1)=1/n;
            synth_triang=synth_triang+b(n+1)*sin(2*pi*n*(1/T)*t);
        end
    end
    t=linspace(0,10*T,10*1000);
    triang=repmat(triang,1,10); % 这里还是用110synth_triang=repmat(synth_triang,1,10); %这里还是用110plot(t,triang,'b-',t,synth_triang,'r--')
    legend('Triangular wave', 'Synthesised triangular wave')
    

    然后使用频谱图可以考虑fft,即在你的代码后面加上

    % 比如对synth_triang进行fft变换
    Y = fft(synth_triang);
    L = length(synth_triang);
    Fs = 1/mean(diff(t));
    P2 = abs(Y/L);
    P1 = P2(1:L/2+1);
    P1(2:end-1) = 2*P1(2:end-1);
    f = Fs*(0:(L/2))/L;
    figure
    plot(f,P1) 
    title('Single-Sided Amplitude Spectrum of synth\_triang')
    xlabel('f (Hz)')
    ylabel('|P1(f)|')
    axis([0 max_harmonics, -inf, inf])
    

    效果:

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月7日
  • 已采纳回答 11月29日
  • 创建了问题 11月29日

悬赏问题

  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题