通信系统模型信源信号源函数Signal Sourcesranderr - Generate bit error patterns.randint - Generate matrix of uniformly distributed random integers.randsrc - Generate random matrix using prescribed alphabet.seqgen.pn - Generate pseudorandom noise sequences (See also: SEQGEN objects).wgn - Generate white Gaussian noise.以randsrc (1,10,[0 1;0.5 0.5])为例产生1*10的0、1矩阵,0、1出现的概率均为0.5;此外Matlab产生随机数:randrand(n):生成0到1之间的n阶随机数方阵rand(m,n):生成0到1之间的m×n的随机数矩阵randnrandn()命令是产生白噪声的,白噪声应该是0均值,方差为1的一组数;同rand有randn(n),randn(m,n)rand是0-1的均匀分布,randn是均值为0方差为1的正态分布randintrandint(m,n,[1 N]):生成m×n的在1到N之间的随机整数矩阵,其效果与randint(m,n,N+1)相同。
Matlab随机数生成函数:betarnd 贝塔分布的随机数生成器binornd 二项分布的随机数生成器chi2rnd 卡方分布的随机数生成器exprnd 指数分布的随机数生成器frnd f分布的随机数生成器gamrnd 伽玛分布的随机数生成器geornd 几何分布的随机数生成器hygernd 超几何分布的随机数生成器lognrnd 对数正态分布的随机数生成器nbinrnd 负二项分布的随机数生成器ncfrnd 非中心f分布的随机数生成器nctrnd 非中心t分布的随机数生成器ncx2rnd 非中心卡方分布的随机数生成器normrnd 正态(高斯)分布的随机数生成器poissrnd 泊松分布的随机数生成器raylrnd 瑞利分布的随机数生成器trnd 学生氏t分布的随机数生成器unidrnd 离散均匀分布的随机数生成器unifrnd 连续均匀分布的随机数生成器weibrnd 威布尔分布的随机数生成器Matlab取整:(1)fix(x) : 截尾取整.>> fix( [3.12 -3.12])ans =3 -3(2)floor(x):不超过x 的最大整数.(高斯取整) >> floor( [3.12 -3.12])ans =3 -4(3)ceil(x) : 大于x 的最小整数>> ceil( [3.12 -3.12])ans =4 -3(4) round (x) :四舍五入取整>> round(3.12 -3.12)ans =>> round([3.12 -3.12])ans =3 -3信源编译码信源编码函数(效果:提高有效性、降低可靠性,信道编码相反)Source Codingarithdeco - Decode binary code using arithmetic decoding.arithenco - Encode a sequence of symbols using arithmetic coding.compand - Source code mu-law or A-law compressor or expander.dpcmdeco - Decode using differential pulse code modulation.dpcmenco - Encode using differential pulse code modulation.dpcmopt - Optimize differential pulse code modulation parameters.Huffmandeco - Huffman decoder.huffmandict - Generate Huffman code dictionary for a source with known probability model.huffmanenco - Huffman encoder.lloyds - Optimize quantization parameters using the Lloyd algorithm.quantiz - Produce a quantization index and a quantized output value.以霍夫曼编码为例:letters = [1:6]; % Distinct symbols the data source can producep = [.5 .125 .125 .125 .0625 .0625]; % Probability distribution[dict,avglen] = huffmandict(letters,p); % Get Huffman code.sig = randsrc(1,20,[letters; p]) % Create data using p.comp = huffmanenco(sig,dict) % Encode the data.deco = huffmandeco(comp,dict) % Decode the encoded signal.equal = isequal(sig,deco) % Check whether the decoding is correct.调制解调Digital Modulation/Demodulation(数字调制/解调函数)dpskmod - Differential phase shift keying modulation.dpskdemod - Differential phase shift keying demodulation.fskmod - Frequency shift keying modulation.fskdemod - Frequency shift keying demodulation.genqammod - General quadrature amplitude modulation.genqamdemod - General quadrature amplitude demodulation.modnorm - Scaling factor for normalizing modulation output.mskmod - Minimum shift keying modulation.mskdemod - Minimum shift keying demodulation.oqpskmod - Offset quadrature phase shift keying modulation.oqpskdemod - Offset quadrature phase shift keying demodulationpammod - Pulse amplitude modulation.pamdemod - Pulse amplitude demodulation.pskmod - Phase shift keying modulation.pskdemod - Phase shift keying demodulation.qammod - Quadrature amplitude modulation.qamdemod - Quadrature amplitude demodulation.以BPSK为例:x=[0 1 0 1 1 0 1 1];scatterplot(pskmod(x,2,0));%Bpsk调制并画星座图,初始相位为0pskdemod(pskmod(x,2,0),2);%解调s=(x*2-1);%BPSK调制c=(s>0); %BPSK解调以QPSK为例:function ModulateSignal=QPSKModulate(SignalData)data=SignalData;for jdata=1:size(data,1)m=1;for idata=1:size(data,2)/2 %QPSK modulationpacket(1:2)=[data(jdata,2*idata-1),data(jdata,2*idata)];if packet==[0,0]symbol(jdata,m)=i;elseif packet==[0,1]symbol(jdata,m)=1;elseif packet==[1,0]symbol(jdata,m)=-1;elseif packet==[1,1]symbol(jdata,m)=-i;endm=m+1;end;endModulateSignal=symbol;信道编译码卷积码及维特比译码(2,1,3)卷积码function[ConvolutionalCode,Trellis]=ConvolutionalEncoding(SourceCode) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%该函数实现(2,1,3)卷积编码%%%%其中SourceCode为要编码的原始序列%%%%ConvolutionalCode为编好的码字%%%%Trellis为网格表示% zjm% Version 1.00% 2010-11-25 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%第一个参数为约束长度。
第二个参数为输入说出关系Trellis=poly2trellis(3,[7 5]);%(2,1,3)卷积码的网格表示,g1=[1 1 1];g2=[1 0 1];ConvolutionalCode=convenc(SourceCode,Trellis);%卷积编码function DecodedCode=ConvolutionalDecoding(EncodedCode) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%该函数实现(2,1,3)卷积译码%%%%其中EncodedCode为要译码的序列%%%%DecodedCode为译好的码字% zjm% Version 1.00% 2010-11-25 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%Trellis=poly2trellis(3,[7 5]);%(2,1,3)卷积码网格表示DecodedCode=vitdec(EncodedCode,Trellis,3,'trunc','hard');%维特比译码,硬判决分组码:>> x=encode([1 0 1 1],7,4,'hamming');>> y=decode(x,7,4,'hamming');信道瑞利(莱斯)衰落信道复数信号:瑞利衰落信道(Rayleigh fading channel)是一种无线电信号传播环境的统计模型。