matlab构造线性相位FIR滤波器


前言

用生成的一组音频文件举例


一、构造一组声音

模拟钢琴音乐,采用逐渐衰减振荡的正弦波
在这里插入图片描述
FFT的频域展示:
在这里插入图片描述
源代码:

function sound_fir
    Fs = 1000; % 采样频率
    freq = [200, 230, 260, 290, 320, 350, 380,410, 440,470]; % 频率数组
    rythm = 0.5; % 持续时间,单位:秒
    gap_duration = 0.2; % 间隔时间,单位:秒
    y = []; % 初始化 y

    note_length = numel(freq); % 使用频率的长度

    % 生成时间向量
    x = linspace(0, rythm, floor(Fs * rythm));
    s = zeros(note_length, numel(x)); 

    % 生成每个频率的波形
    for i = 1:note_length
        s(i, :) = sin(2 * pi * freq(i) * x) .* (1 - x / (rythm)); 
    end

    % 合并音频信号,并添加间隔
    for i = 1:note_length
        y = [y, s(i, :)]; % 添加当前音符
        % 添加间隔
        y = [y, zeros(1, round(Fs * gap_duration))]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值