前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【数字信号处理】傅里叶变换性质 ( 傅里叶变换频移性质示例 | PCM 音频信号处理 | 使用 matlab 进行频移操作 )

【数字信号处理】傅里叶变换性质 ( 傅里叶变换频移性质示例 | PCM 音频信号处理 | 使用 matlab 进行频移操作 )

作者头像
韩曙亮
发布2023-03-30 12:08:21
1.1K0
发布2023-03-30 12:08:21
举报

文章目录

一、PCM 音频信号处理


给定一段 PCM 音频数据 , 封装到 .WAV 文件 中 ,

此时的信号 是 实信号 , 每个 PCM 音频采样都是一个 实数值 ,

绘制该 音频数据 实信号 的 " 幅频特性 " ,

将该 PCM 音频的 频率 移动

6kHz

,

频移后的 音频信号 变成了 复信号 ,

绘制该 复信号的 " 幅频特性 " ;

准备一个 wav 格式的音频文件 , 该 music.wav 文件是一个

16

单声道

44100Hz

采样率

的音频文件 , 其 采样波形 与 频谱 如下 :

在这里插入图片描述
在这里插入图片描述

代码示例 :

代码语言:javascript
复制
% wave 文件采样
pcmFileName='music.wav';

% 读取  music.wav 文件
% s1 是读取的信号向量
% sampleRate 是采样率 44100Hz 表示每秒有 44100 个音频样本
[signal,sampleRate] = audioread(pcmFileName);

% 上面的 sampleRate 计算出来是 44100 单位是 Hz
% 这里需要将 sampleRate 的单位变为 kHz , 除以 1000 
sampleRate = sampleRate/1000;

% 矩阵转置 
% 将 1x132300 矩阵转为 132300x1 矩阵
signalT=signal';

% 取 信号 的前 2048 个点进行分析
x=signalT(1:2048);

% 求 signalT 实信号的 频谱
xf=20 * log10(abs(fft(x,4096)));
xf1(1:2048)=xf(2049:4096);
xf1(2049:4096)=xf(1:2048);

% 绘制实信号的频谱图
figure;
plot((-2048:2047) * sampleRate/4096,xf1);
grid on;

% 根据 傅里叶变换 频移性质, 进行频谱搬移
% 频率搬移 6kHz
y=x.*exp(2*j*pi*6/32*(0:2047));

% 求 signalT 频移后的 复信号的 频谱
yf=20*log10(abs(fft(y,4096)));
yf1(1:2048)=yf(2049:4096);
yf1(2049:4096)=yf(1:2048);

% 绘制频率搬移 6kHz 后的复信号的频谱图
figure;
plot((-2048:2047)*fs/4096,yf1);
grid on;
在这里插入图片描述
在这里插入图片描述

二、要点说明


根据 图1 所示 , 实信号的 " 幅频特性 " 是 偶对称的 ;

在这里插入图片描述
在这里插入图片描述

图2 复信号 的 " 幅频特性 " , 向右平移了 6 kHz , 此时就不是 偶对称 了 ;

在这里插入图片描述
在这里插入图片描述

傅里叶变换时移 只影响 " 相频特性 " , 不影响 " 幅频特性 " ;

傅里叶变换频移 同时影响 " 相频特性 " 和 " 幅频特性 " ;

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-03-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、PCM 音频信号处理
  • 二、要点说明
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档