MATLAB实现对任意音频文件绘制时域图、频域图、功率谱图

应用场景:

利用MATLAB对音频文件进行声学分析,生成时域图、频域图、功率谱图

打开MATLAB,输入相关代码。

相关代码

 [y,Fs]=audioread('C:\Users\hasee\Desktop\qiangpiao\4444.mp3');%读出信号,采样率和采样位数。
y=y(:,1);%我这里假设你的声音是双声道,我只取单声道作分析,如果你想分析另外一个声道,请改成y=y(:,2)
sigLength=length(y);
Y = fft(y,sigLength);
Pyy = Y.* conj(Y) / sigLength;
halflength=floor(sigLength/2);
f=Fs*(0:halflength)/sigLength;
figure;plot(f,Pyy(1:halflength+1));xlabel('Frequency(Hz)');%生成时域图
t=(0:sigLength-1)/Fs;
figure;plot(t,y);xlabel('Time(s)');%生成频域图
[Pxx,f] = pwelch(y,Fs);
figure;plot(f,Pxx);%生成功率谱图
xlabel('Frequency (Hz)');  % 设置 x 轴标签
ylabel('Power');  % 设置 y 轴标签

输出结果

 

 

  • 1
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
1. 时域: 可以使用MATLAB中的plot函数绘制4QAM信号时域波形。假设4QAM信号的调制方式为正交振幅调制(QAM), 则可以使用MATLAB中的qammod函数生成4QAM信号。以下是一个简单的MATLAB代码示例: ```matlab % 生成4QAM信号 n = 1000; % 信号点数 M = 4; % 调制阶数 x = randi([0 M-1],n,1); % 随机生成调制符号 s = qammod(x,M); % 4QAM调制 % 绘制时域波形 t = linspace(0,1,n); % 时间轴 figure plot(t,real(s)); hold on plot(t,imag(s)); xlabel('时间') ylabel('幅度') legend('实部','虚部') ``` 2. 频域: 可以使用MATLAB中的fft函数将4QAM信号转换到频域,然后使用MATLAB中的plot函数绘制频域波形。以下是一个简单的MATLAB代码示例: ```matlab % 生成4QAM信号 n = 1000; % 信号点数 M = 4; % 调制阶数 x = randi([0 M-1],n,1); % 随机生成调制符号 s = qammod(x,M); % 4QAM调制 % 绘制频域波形 fs = 1000; % 采样率 f = linspace(-fs/2,fs/2,n); % 频率轴 S = fftshift(fft(s,n))/n; % 4QAM信号的频谱 figure plot(f,abs(S)); xlabel('频率') ylabel('幅度') ``` 3. 时频域: 可以使用MATLAB中的spectrogram函数绘制4QAM信号的时频谱图。以下是一个简单的MATLAB代码示例: ```matlab % 生成4QAM信号 n = 1000; % 信号点数 M = 4; % 调制阶数 x = randi([0 M-1],n,1); % 随机生成调制符号 s = qammod(x,M); % 4QAM调制 % 绘制频谱图 fs = 1000; % 采样率 window = 128; % 窗口大小 overlap = 64; % 重叠大小 nfft = 256; % FFT点数 spectrogram(s,window,overlap,nfft,fs,'yaxis'); ``` 4. 功率谱: 可以使用MATLAB中的periodogram函数绘制4QAM信号功率谱。以下是一个简单的MATLAB代码示例: ```matlab % 生成4QAM信号 n = 1000; % 信号点数 M = 4; % 调制阶数 x = randi([0 M-1],n,1); % 随机生成调制符号 s = qammod(x,M); % 4QAM调制 % 绘制功率谱 fs = 1000; % 采样率 [Pxx,f] = periodogram(s,[],[],fs); figure plot(f,Pxx) xlabel('频率') ylabel('功率谱') ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值