首页
发现
课程
培训
文章
案例
问答
需求
服务
行家
赛事
热门搜索
发布
消息
注册
|
登录
首页
/
文章
/
详情
《Contemporary Communication ...... MATLAB》(2)调制代码
算法工匠
2小时前
浏览11
关注
之前给了书籍,这次给出代码!书籍代码和本人写的代码!本人代码只限于模拟通信,数字通信的内容见下一篇文章!经过三个月的整理,终于在2024年11月和大家见面了。
本人写的代码是在学生写的基础上修订完成。之前给学生讲解了每个程序,顺道将代码改成了本人的编写风格,当然也加入了一些实际“因素”!这些因素恰恰是工作中会遇到的!先看书籍代码中的内容!
原先程序存在很多不规范之处,修改后方能运行!
函数名修改正确!但书中
没有AM解调程序!那我来给大家补充了!为什么需要补充程序呢?是为了让大家能够知道在实际中如何使用这些知识!
那么在实际使用中,AM又如何发挥作用呢?
依旧通过程序来说明!这是最好的理论用于实践的过程!这样的学习才适用于工科生!请看代码!
% Load audio signal (as message signal)
[file, path] = uigetfile('*.wav', 'Select an Audio File'); % Load a .wav file
[audio_signal, Fs_audio] = audioread(fullfile(path, file));
Fs = Fs_audio;
% Sampling frequency (Hz), usually 11025 Hz - 44100 Hz
% WAV 文件中的关键参数:
% RIFF Header:标识这是一个 RIFF(资源互换文件格式) 文件。
% Format Chunk:
% Subchunk1 ID:通常是 "fmt "。
% Subchunk1 Size:格式块的大小(通常为 16 字节)。
% Audio Format:音频格式(PCM 通常为 1)。
% Num Channels:声道数(例如,1 表示单声道,2 表示立体声)。
% Sample Rate:采样频率,以赫兹(Hz)表示。
% Byte Rate:每秒传输的字节数(Sample Rate × Num Channels × Bits Per Sample / 8)。
% Block Align:每个采样的字节数(Num Channels × Bits Per Sample / 8)。
% Bits Per Sample:每个样本的比特数(通常为 16、24 或 32)。
% Data Chunk:
% Subchunk2 ID:通常是 "data"。
% Subchunk2 Size:音频数据的大小。
% Audio Data:实际的音频样本数据。
% Normalize the audio signal
audio_signal = audio_signal / max(abs(audio_signal));
% Normalize between -1 and 1
% Resample audio signal if its sampling frequency differs from the desired Fs
if Fs_audio ~= Fs
audio_signal = resample(audio_signal, Fs, Fs_audio);
end
% Time vector for the signal
t = (0:length(audio_signal)-1) / Fs;
% Generate carrier signal
carrier_signal = cos(2 * pi * Fc * t)';
% Modulation (AM)
AM_signal = (1 + audio_signal) .* carrier_signal;
% Plot the modulated signal
figure;
subplot(3, 1, 1);
plot(t, audio_signal);
title('Original Audio Signal');
xlabel('Time (s)');
ylabel('Amplitude');
subplot(3, 1, 2);
plot(t, AM_signal);
title('AM Modulated Signal');
xlabel('Time (s)');
ylabel('Amplitude');
% Demodulation using envelope detection
demodulated_signal = abs(hilbert(AM_signal)) - 1;
% Subtract 1 to remove the DC offset
% Normalize the demodulated signal to match the original
demodulated_signal = demodulated_signal / max(abs(demodulated_signal));
% Plot demodulated signal
subplot(3, 1, 3);
plot(t, demodulated_signal);
title('Demodulated Audio Signal');
xlabel('Time (s)');
ylabel('Amplitude');
% Play the original audio
disp('Playing original audio...');
sound(audio_signal, Fs);
pause(length(audio_signal)/Fs + 1); % Wait until audio finishes playing
% Play the demodulated audio
disp('Playing demodulated audio...');
sound(demodulated_signal, Fs);
知识的难度在加大,趣味性也在增加!想学那就赶紧的!学懂了模拟调制技术也算是通信入门了!不过数字调制技术的难度远大于
模拟调制技术,看了本人写的代码自然就明了。
通信原理与matlab仿真v3 第四章 BPSK调制解调器 再绪
......
一个系列!打开文章后,底部会出现目录。这个目录里面的文章所包含的代码是通信知识的最好实践!建议入门者好好学习!下面的这些代码都是经过本人的调试,注释非常的全面,肯定对大家有帮助!很多内容还和产品相关,包含工程经验。
讲了这么多内容,请大家赶快下载此书开始学起来吧,下一篇文章再给出相关的代码吧!
友情提醒:
只有一天有效!
给出二维码链接!如果买过后,发现链接过期,请留言给我,本人会通过后台发送新的链接。
来源:通信工程师专辑
登录后免费查看全文
立即登录
ACT
MATLAB
通信
UM
理论
Origin
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-11-08
最近编辑:2小时前
算法工匠
博士后
|
高级工程师
诚信做事 认真讲课 传播知识
关注
获赞 395
粉丝 2578
文章 328
课程 40
点赞
收藏
作者推荐
可试听
MATLAB通信工程师的必修课 绪论
¥150
5.0
立即查看
0/200
清空
提交
还没有评论
课程
培训
服务
行家
Matlab电化学
《双11特惠》MATLAB通信工程师的必修课 第四章 信号捕获和同步 第三部分
从Matlab算法仿真到产品应用的关键技术与方法
CST超材料表面仿真实战课程10讲:微波、太赫兹、光学人工合成复合超表面材料研究
相关推荐
大学本科课程 现代通信系统概论(下)
《双11特惠》Matlab通信仿真信噪比等效转换专题:全网讲信噪比等效转换最透彻的课程就在这里!
大学本科课程 卫星通信 第三部分
大学本科课程 卫星通信 第一部分
《双11特惠》MATLAB通信工程师的必修课 第四章 信号捕获和同步 第二部分
最新文章
【文章推荐】多体动力学及其在工程中的应用
为何烤红薯比蒸红薯更受欢迎?从流体力学角度聊一聊
几个美国科学基金会的资助项目,大家看看哪些科技项目有潜力
2024新能源车产业链报告!
复杂装备视景仿真,基于MBSE理论,如何便捷化实现?
热门文章
盘点·近十年来国外各公司推出的碳纤维产品
ABAQUS中Cohesive粘聚力模型的2种定义方式(附案例操作步骤)
Abaqus分析常见问题及解决方法(2):零主元和过约束
Abaqus分析常见问题及解决方法(3):负特征值(Negative Eigenvalue)
电磁场仿真 | ChatGPT请回答,我想和你聊聊
其他人都在看
几种常见的热仿真软件
仿真工作者必须知道的15款开源软件!
CFX进行共轭传热分析实例
机电一体化装备数字孪生机理模型构建准则
春招进行时:仿真人才库电磁仿真工程师内推专场(含社招)
VIP会员
学习
福利任务
兑换礼品
下载APP
联系我们
微信客服
联系客服
人工服务时间为周一至周五的9:30-19:30
非工作时间请在微信客服留言
客服热线:
4000-969-010
邮箱:
service@fangzhenxiu.com
地址:
北京市朝阳区莱锦创意园CN08座
帮助与反馈
返回顶部