通信原理实践(三)——FM调制
一、FM调制
1、代码如下:
clc,clear; fm = 500; % 调制信号频率(Hz)
Am = 0.5; % 调制信号幅度
fc = 5e3; % 载波频率(Hz)
Ac = 1; % 载波幅度
mf = 5; % 调频指数 %%
%firstly
kf = mf * 2 * pi * fm / Am
diatf = kf * Am
B = 2 * (mf + 1) * fm %%
%secondly
fs = 64e3; % 采样率
N = 3000; % 样点总数
t = (0:N-1)'/fs; % 时间t %绘制时域波形
m_t = Am*sin(2*pi*fm*t); % 调制信号
phi_t = kf*cumsum(m_t)/fs; % 相位积分
s_t = cos(2*pi*fc*t + phi_t); % 已调信号\
figure(1)
subplot(1,3,1)
plot(t, s_t , 'b'); % 绘波形
xlabel('time');
ylabel('amplitude');
title('时域波形'); %绘制功率谱
L = length(s_t); % 取得序列长度
u = fftshift(fft(s_t )); % 离散傅里叶变换,求频谱
u_pow = pow2db(abs(u).^2); % 幅度转为dB
w = (0:L-1)'*fs/L - 1/2*fs; % 横坐标-频率 subplot(1,3,2);
plot(w, u_pow);
grid on;
xlabel('frequency(Hz)');
ylabel('magnitude(dB)');
title('功率谱'); %%
%fortly [lpf_b,lpf_a] = butter(3, (fc/5)/(fs/2)); % 设计低通滤波器
t = (0:N-1)'/fs; % 时间t
r_t = s_t;
subplot(1,3,3)
r_d_t = [0;diff(r_t)]; % 求微分
r_e_t = abs(r_d_t); % 包络检波
demod_t = filter(lpf_b, lpf_a, r_e_t); % 滤波
plot(t, demod_t , 'b'); % 绘图
title('解调波形'); %%
%thirdly
fs_J=100e3;
t=(0:N-1)';
N_J=3000000;
t_J=(0:N_J-1)'; sm=Am*cos(2*pi*fm/fs*t);
sfm_J=Ac*cos(2*pi*fc/fs_J*t_J+mf*sin(2*pi*fm/fs_J*t_J)); Sfm=fft(sfm_J);
figure;
plot(abs(Sfm)); i=0:9
J=besselj(i,mf);
J_comp=abs(J/J(1))
2、结果分析
在进行功率谱分析的时候,可以将采样点增大,而绘图的采样点不变,这样子得到的功率谱会更加离散,便于和贝塞尔函数进行比较。
二、L+R音频调制
1、流程设计
2、代码如下
clear all;clc; %载入信号
load('fm_cap.mat');
fm_cap = resample(fm_cap,1,4); %降低采样率 fs = 500e3; % 采样率
N = length(fm_cap); % 样点数
t = (0:N-1)'/fs; % 时间t r_d_t = [0;diff(fm_cap)]; % 求微分
r_e_t = abs(hilbert(r_d_t));
r_e_t = r_e_t - sum(r_e_t)/N; plot(t, r_e_t , 'b'); % 绘图
[lpf_b,lpf_a] = butter(5, 10e3/(fs/2)); % 设计低通滤波器
demod_t = filter(lpf_b, lpf_a, r_e_t); % 滤波 demod_t = resample(demod_t,16,125);
demod_t = demod_t ./ max(demod_t);
sound(demod_t,64e3);
通信原理实践(三)——FM调制的更多相关文章
- 通信原理实践(四)——模拟通信系统性能分析
一.模拟通信系统性能分析 1.系统框图 2.信噪比定义 (1)输入信噪比: (2)输出信噪比: (3)调制制度增益: 3.模拟通信系统分析等价模型 即自己产生一个高斯白噪声,加入到调制信号,然后在送入 ...
- 通信原理实践(二)——幅度调制
一.幅度调制,并画出时域和频域波形 1.代码如下: function [ p_n ] = AM_func( N,fs,fm,Am,fc,Ac,Ma ) %UNTITLED 此处显示有关此函数的摘要 % ...
- 通信原理实践(五)——2PSK 与2DPSK 通信系统
一.一些Matlab函数 二.2PSK调制解调,性能分析 1.2PSK调制 (1)图示 (2)Matlab代码 function [ s_t ,bb_t,bits] = psk2_module( nS ...
- 【转】Python学习---Socket通信原理以及三次握手和四次挥手详解
[原文]https://www.toutiao.com/i6566024355082404365/ 什么是Socket? Socket的中文翻译过来就是"套接字".套接字是什么,我 ...
- 通信原理实践(一)——音频信号处理
一.信号的离散化 1.采样定理: –如果信号是带限的,并且采样频率fs超过信号最高频率的两倍,那么,原来的连续信号可以从采样样本中完全重建出来. 因此在仿真过程中,采样率(fs)是一个非常重要的参数. ...
- 通信原理实践(六)——基带传输
一.基带传输引入 1.从数字带通传输说起 以上系统可以等价为: 这里"等价"的假设条件是 •信号通过滤波器不失真 •不存在码间串扰 意义:可以通过评估基带传输系统来获得数字带通传输 ...
- WebSocket原理与实践(三)--解析数据帧
WebSocket原理与实践(三)--解析数据帧 1-1 理解数据帧的含义: 在WebSocket协议中,数据是通过帧序列来传输的.为了数据安全原因,客户端必须掩码(mask)它发送到服务器的所有 ...
- 基于web的IM软件通信原理分析
关于IM(InstantMessaging)即时通信类软件(如微信,QQ),大多数都是桌面应用程序或者native应用较为流行,而网上关于原生IM或桌面IM软件类的通信原理介绍也较多,此处不再赘述.而 ...
- Socket 通信原理(Android客户端和服务器以TCP&&UDP方式互通)
转载地址:http://blog.csdn.net/mad1989/article/details/9147661 ZERO.前言 有关通信原理内容是在网上或百科整理得到,代码部分为本人所写,如果不当 ...
随机推荐
- IDEA Error:java: 未结束的字符串文字
首页 > 编程交流 > 基础篇 > IDEA Error:java: 未结束的字符串文字 201601-25 IDEA Error:java: 未结束的字符串文字 IDEA开发, ...
- [猜数字]把两个数和告诉A,积告诉B,求这两个数是什么
1-20的两个数把和告诉A,积告诉B,A说不知道是多少,B也说不知道,这时A说我知道了,B接着说我也知道了,问这两个数是多少? 分析: 设和为S,积为M. 首先,A:我不知道. 说明:S可以分解成多个 ...
- jenkins集成ansible注意事项Failed to connect to the host via ssh.
在集成jenkins和ansible实现自动化部署时,root用户下执行ansible命令时可以正常运行.由于是通过jenkins用户去执行ansible命令,而jenkins用户却报如下异常: XX ...
- 初识 MySQL 5.6 新功能、参数
摘要: 继上一篇的文章 初识 MySQL 5.5 新功能.参数 之后,现在MySQL5.6 针对 MySQL5.5 各个方面又提升了很多,特别在性能和一些新参数上面,现在看看大致提升了哪些方面(后续不 ...
- vs2010 快捷键大全
vs2010 快捷键大全 VS2010版快捷键 Ctrl+E,D ----格式化全部代码 Ctrl+E,F ----格式化选中的代码 CTRL + SHIFT + B生成解决方案 CTRL + F7 ...
- mybatis setting配置
Mybatis配置报错元素类型为 "configuration" 的内容必须匹配 "(properties?,settings?,typeAliases?,typeHan ...
- iOS 一个控件只能拥有一个父类
不多说上图.多么惨痛的教训,一个子控件 只有最后的一个被addsubview才会生效.
- 25个增强iOS应用程序性能的提示和技巧(高级篇)(1)
25个增强iOS应用程序性能的提示和技巧(高级篇)(1) 2013-04-16 14:56 破船之家 beyondvincent 字号:T | T 在开发iOS应用程序时,让程序具有良好的性能是非常关 ...
- eclipse clear swtich workspace
edit : --> D:\tools\eclipse\configuration\.settings\org.eclipse.ui.ide.prefs
- 报错 - Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lex failed with exit code 1
这里有两种情况:第一种是某xxx.m文件不存在或路径不对,而且里面有5.1什么的解决方法如下:在Build Phases-->Complie Sources中找到有两个xxx.m文件,一个正常, ...