Professional Documents
Culture Documents
Gamma
Gamma
40
% phân bố Gamma
nameDist='Gamma';
a=1;
b=2;
% số lượng mẫu cần tạo
N=10000;
r=random(nameDist,a,b,[N 1]);
% vẽ dồ thị hítogram
histfit(r,100,nameDist)
set(gcf,'color','white');
% ví dụ 4.41
% Số mức lượng tử
Mu = 255;
% Tín hiệu hàm mũ
t = -4:0.1:4;
sig = exp(t);
V = max(sig);
% Lượng tử tín hiệu partition = 0:2^6-1;
partition = 0:2^6-1;
codebook=0:2^6;
[~,~,distor1] = quantiz(sig,partition,codebook)
% Vẽ tín hiệu
plot([sig' compsig'],'linewidth', 2);
legend('Tín hiệu gốc', 'Tín hiệu đã nén','location', 'nw')
set(gcf,'color', 'white');
% ví dụ 4.42
t = [0:.1:4*pi];
% Chia vùng
partition=[-1:.2:1];
% Từ mã
codebook = [-1.2:.2:1];
% Lượng tử
[index,quants] =quantiz(sig,partition,codebook);
% ví dụ 4.43
% Thời gian của tín hiệu, chọn 1 chu kỳ với một bước mẫu là 0.1
t = [0:.1:2*pi];
% Tạo tín hiệu cos
sig = sin(t);
% Chia vùng
partition = [-1:.2:1];
% Từ mã
codebook=[-1.2:.2:1];
% Lượng tử
[index,quants,distor] =quantiz(sig,partition,codebook);
% ví dụ 4.44
% y(k)=x(k-1)
predictor = [0 1];
partition = [-1:.1:.9];
codebook = [-1:.1:1];
t=[0:pi/50:2*pi];
% Luong tu DPCM
encodedx=dpcmenco(x,codebook,partition,predictor);
% Vẽ hình so sánh
plot(t,x,t,decodedx,'--')
legend('Tín hiệu gốc','Tín hiệu DPCM','Location','North Outside');
set(gcf,'color', 'white');
%ví dụ 4.45
% Mã hóa Huffman
dict = huffmandict(1:6,[.5 .125 .125 .125 .0625 .0625]);
S = randi([1 6],1,10)
enS = huffmanenco(S,dict)
deS = huffmandeco(enS,dict)
%ví dụ 4.46
% Đặc tính dữ liệu
counts = [99 1];
% Tính số lỗi
sum(x~=x_)
% ví dụ 4.48
% Thiết lập mã Hamming
k = 11;
n = 15;
data = randi([0 1],k,1);
TxData = encode(data,n,k,'hamming/binary');
% Trường hợp l
% Sai 1 bit tại bắt thứ 3
RxData = TxData;
RxData(3)=~ RxData(3);
decData = decode(RxData,n,k,'hamming/binary');
numerr=sum(data~= decData)
% Trường hợp 2
% Sai hai bit 1 và 2
RxData = TxData;
RxData(1:2)=~RxData(1:2);
decData = decode(RxData,n,k,'hamming/binary');
numerr = sum(data~=decData)
% ví dụ 4.49
%Mã vòng(n,k)= (15,5)
n=15;
k=5;
%Khởi tạo dữ liệu
data=randi([0 1],k,1);
%Khi tạo đa thức vòng
gpol=cyclpoly(n,k);
%Tạo ra ma trận sinh
parmat=cyclgen(n,gpol);
%Tạo ra bảng giải mã syndrome
trt=syndtable(parmat);
%Mã hóa vòng
TxData=encode(data,n,k,'cyclic/binary',gpol);
%Chiều dài từ mã
n=2^M-1;
%Mã hóa
enc=bchenc(msgTx,n,k);
%Kiểm tra khả năng sửa lỗi của mã, giá trị ne là giá trị số lỗi mà mã BCH
%có khả năng sửa được
ne=bchnumerr(n,k);