资源简介
用matlab仿真qam的调制解调 并附有word文档
代码片段和文件信息
% Project1
% 日期:2006.12.28
close all;clear;clc
%Variable declare
N=10000; % 二进制码流比特数
T=0.001; % 16QAM符号长度(s)
Fd=1/T; % 符号率
Fs=4000; % 过采样率(Hz)
r=Fs*T; % 过采样因子
alpha=0.25; % 滚降因子
Fc=500; % 信道截止频率(Hz)
SNR=15; % 信道的信噪比
%Bit Source
source=randint(N1); % 产生二进制码流
%QAM Coder
send=bi2de(flipud(reshape(source4N/4))‘);
QAM=qammod(send16);
h1=scatterplot(QAM);
set(h1‘Name‘‘Constellation Diagram‘);
title(‘Constellation of 16QAM in source‘);
%Transmitter
p=rcosine(FdFs‘sqrt‘alpha); % 均方根升余弦滤波器
len=length(QAM);
QAMS=zeros(size(1:r*len));
QAMS(1:r:r*len)=QAM;
QAM_x=real(QAMS);
QAM_y=imag(QAMS);
delay=(length(p)-1)/2;
temp1=zeros(size(1:delay));
T_x_a=[QAM_x temp1];
T_y_a=[QAM_y temp1];
T_x_a=filter(p1T_x_a);
T_y_a=filter(p1T_y_a);
T_x=T_x_a(1+delay:10000+delay);
T_y=T_y_a(1+delay:10000+delay);
figure(2);
hold on;
for i=(length(p)+1)/2:r*2:len-r*2
plot(T_x(i:i+r*2));
end;
hold off;
figure(3);
freqz(T_x1256);
%Channal
%[B A]=butter(22*Fc/Fs);
B=fir1(82*Fc/Fs);A=1;
delay=(length(B)-1)/2;
temp1=zeros(size(1:delay));
C_x_a=[T_x temp1];
C_y_a=[T_y temp1];
C_x_a=filter(BAC_x_a);
C_y_a=filter(BAC_y_a);
C_x=C_x_a(1+delay:10000+delay);
C_y=C_y_a(1+delay:10000+delay);
C_x=awgn(C_xSNR);
C_y=awgn(C_ySNR);
figure(4);
freqz(C_x1256);
%Equalizer
load c;
freqz(BA256);
hold on;
freqz(c1256);
hold off;
delay=(length(c)-1)/2;
temp1=zeros(size(1:delay));
E_x_a=[C_x temp1];
E_y_a=[C_y temp1];
E_x_a=filter(c1E_x_a);
E_y_a=filter(c1E_y_a);
E_x=E_x_a(1+delay:10000+delay);
E_y=E_y_a(1+delay:10000+delay);
%E_x=C_x;
%E_y=C_y;
%Receiver
delay=(length(p)-1)/2;
temp1=zeros(size(1:delay));
R_x_a=[E_x temp1];
R_y_a=[E_y temp1];
R_x_a=filter(p1R_x_a);
R_y_a=filter(p1R_y_a);
R_x=R_x_a(1+delay:10000+delay);
R_y=R_y_a(1+delay:10000+delay);
figure(5);
hold on;
for i=(length(p)+1)/2:r*2:len-r*2
plot(R_x(i:i+r*2));
end;
hold off;
%Sample
DQAM_x=R_x(1:4:10000);
DQAM_y=R_y(1:4:10000);
Error_x=DQAM_x‘-real(QAM);
Error_y=DQAM_y‘-imag(QAM);
DQAM=DQAM_x+j*DQAM_y;
h2=scatterplot(DQAM);
%Decoder
rcv = qamdemod(DQAM16);
%Error
[Err_numErr_ratio]=symerr(rcvsend‘)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 141824 2007-01-17 19:18 通信原理大作业(1).doc
文件 2908 2007-12-11 16:47 project1.m
----------- --------- ---------- ----- ----
144950 3
- 上一篇:curvelet matlab工具箱
- 下一篇:MATLAB音频信号的分析与合成程序
相关资源
- MATLAB音频信号的分析与合成程序
- curvelet matlab工具箱
- matlab人脸识别和特征提取
- 圣诞树(matlab代码)
- MATLAB六自由度弹道仿真程序
- matlab的pde工具箱使用方法
- 心音信号处理分析(附matlab代码)
- MATLAB实现弹道仿真
- MIMO雷达DOA估计中的克拉美罗界计算
- Matlab图像分割边缘提取算法
- Boost电路的MATLAB仿真
- 基于气动力的导弹姿态控制(附MATL
- 有源电力滤波器的Matlab仿真_高勇
- Pattern Recognition and Machine Learning(高清
- MATLAB 编程 第二版 Stephen J. Chapman 著
- 均值滤波和FFT频谱分析Matlab代码
- 《MATLAB扩展编程》代码
- HDB3码、AMI码的MATLAB实现
- 3点GPS定位MATLAB仿真
- MATLAB数字信号处理85个实用案例精讲入
- matlab从入门到精通pdf94795
- 欧拉放大论文及matlab代码
- 跳一跳辅助_matlab版本
- 全面详解LTE MATLAB建模、仿真与实现
- MIMO-OFDM无线通信技术及MATLAB实现_孙锴
- MATLAB Programming for Engineers 4th - Chapman
- matlab 各种谱分析对比
- 分数阶chen混沌matlab程序
- 基于粒子群算法的非合作博弈的matl
- MATLAB车流仿真 包括跟驰、延误
评论
共有 条评论