亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ofdm程序解析.m

?? OFDM仿真
?? M
?? 第 1 頁 / 共 2 頁
字號:
%a_run_design.m文件
% setup				%系統(tǒng)設(shè)置
% QAM				%QAM調(diào)制方式
% OFDM				%OFDM調(diào)制方式
% Analysis				%QAM和OFDM兩種方式對比

% 1setup            %初始化部分
% setup
disp(' '), disp('------------------------------------------------------------')
disp('Simulation Setup')

% OFDM Setup -----------------------------------------------------------
fft_size = 128		% should be a power of 2 for fast computation
				% more points = more time domain samples (smoother & more cycles)
num_carriers = 32	% should be <= fft_size/4
				% number of carriers used for each data chunk
% new var - denotes even spacing or variations of carriers among fft points
input_type = 2;
% 1 = test input
	test_input_type = 1;
	% 1 = bit specified (binary)
		binary_data = [0 1 0 1 0 1 0 1];
	% 2 = random data stream (samples in the range of 0-255)
		num_symbols = 9;
	% 3 = sinusoidal
		frequency = 2;
		num_samples = 50;
% 2 = external file input
	file_name = 'shortest.wav';		% Name of input file
	file_input_type = 3;
		% 1 = binary (not implemented)
		% 2 = text					% Demo file:  'text.txt'
		% 3 = sound				% Demo files: 'shortest.wav' & 'shorter.wav'
		% 4 = image (not implemented)

% QAM Setup ------------------------------------------------------------
do_QAM = 1;		% (1=on, 0=off)
QAM_periods = 10;	% defines the number of periods per QAM Symbos (1=2*pi)

% Channel Simulation Parameters --------------------------------------------
channel_on = 1;		% 1=on, 0=off
clip_level = 1.0;		% 0.0 - 1.0 (0-100%)
	% Max magnitude of the signal is 'clip_level' times the full magnitude of the signal
noise_level = 0.0;	% 0.0 - 1.0 (0-100%)
	% Magnitude of noise is 'noise_level' times the magnitude of the signal
% Multipath Channel Simulation
	% Good defaults when fft_size = 128 and num_carriers = 32:
	%	d1=6; a1=0.30; d2=10; a2=0.25
	d1 = 6;		% delay in units
	a1 = 0.30; 	% attenuation factor - multipath signal is x% of size or original signal
	d2 = 10;		% delay for second multipath signal
	a2 = 0.25;	% attenuation factor for second multipath signal


% ****************** TEST INPUT SETUP - DO NOT MODIFY **************************
if input_type == 1
	if test_input_type == 1
		%specify BINARY input bit-by-bit
		data_in = binary_data;
	end
	if test_input_type == 2
		%random input defined by parameters
		num_levels = 255;		%number of possible levels of a symbol
						%must be integer between 1-255
		data_samples = round(rand(1,num_symbols)*(num_levels-1));
		data_in = zeros(1,8*length(data_samples));
		for i = 1:length(data_samples)
			data_in(1 + (i-1)*8:(i-1)*8 + 8) = eight2bin(data_samples(i));
		end
	end
	if test_input_type == 3
		%data stream represents sine wave samples
		t = linspace(0,1,num_symbols);	%evenly space number of samples
		%take 8-bit samples of sine wave
		data_samples = round(127.5*sin(frequency*2*pi*t) +127.5);
		data_in = zeros(1,8*length(data_samples));
		for i = 1:length(data_samples)
			data_in(1 + (i-1)*8:(i-1)*8 + 8) = eight2bin(data_samples(i));
		end
	end
end

already_made_noise = 0;	% initialization (don't change)

% 2、QAM.m
% QAM.m compares OFDM (multicarrier) to multi-level QAM (single carrier)
% when they transmit the same # of bits in a given time period

read		% read data for QAM - does not affect OFDM
data_in_pol = bin2pol(data_in);		% Converts binary data to polar data

% check to see if num_carriers is a power of 2
is_pow_2 = num_carriers;
temp_do_QAM = 0;
if is_pow_2 ~= 2
	while temp_do_QAM == 0
		temp_do_QAM = rem(is_pow_2,2);
		is_pow_2 = is_pow_2/2;
		if is_pow_2 == 2
			temp_do_QAM = -99;		% it is a power of 2 -> can do QAM
		end
	end
else
	temp_do_QAM = -99;	% 2 is a power of 2
end
if temp_do_QAM ~= -99
	do_QAM = 0;	% don't do it if it's not possible
	disp(' '),disp('ERROR: Cannot run QAM because num_carriers is not valid.')
	disp('       Please see "setup.m" for details.')
end

%------------------------------------------------------------------------
%                           單獨的QAM調(diào)制通過信道及解調(diào)
%------------------------------------------------------------------------
if do_QAM == 1
	tic	% Start stopwatch to calculate how long QAM simulation takes
	
	disp(' '), disp('------------------------------------------------------------')
	disp('QAM simulation'), disp('Transmitting')
	
	% Pad with zeros so data can be divided evenly
	data_length = length(data_in_pol);
	r = rem(data_length,num_carriers);
	if r ~= 0
		for i = 1:num_carriers-r
			data_in_pol(data_length+i) = 0;	%pad input with zeros to complete last data set
		end							%speed improve possible
	end
	data_length = length(data_in_pol);		%update after padding
	
	num_OFDM_symbols = ceil(data_length / (2*num_carriers));
	% num QAM symbols that represent equal amount of data to one OFDM symbol
	num_QAM_symbols = num_carriers / 2;
	% num samples per QAM symbol
	num_symbol_samples = fft_size / num_QAM_symbols;
	
	% convert polar data [-1, 1] to 4 level data [-3, -1, 1, 3]
	data_in_4 = zeros(1,data_length/2);
	for i = 1:2:data_length
		data_in_4(i - (i-1)/2) = data_in_pol(i)*2 + data_in_pol(i+1);
	end
	
	% define sample points between 0 and 2*pi
	ts = linspace(0, 2*pi*QAM_periods, num_symbol_samples+1);
	
	% Generate 16-QAM data
	% total length of 16-QAM transmission
	tx_length = num_OFDM_symbols * num_QAM_symbols * num_symbol_samples;
	QAM_tx_data = zeros(1,tx_length);
	for i = 1:2:data_length/2
		for k = 1:num_symbol_samples
			QAM_tx_data(k+((i-1)/2)*num_symbol_samples) = data_in_4(i)*cos(ts(k)) + data_in_4(i+1)*sin(ts(k));
		end
	end
	
	% Do channel simulation on QAM data
	xmit = QAM_tx_data;		% ch uses 'xmit' data and returns 'recv'
	ch
	QAM_rx_data = recv;		% save QAM data after channel
	clear recv				% remove 'recv' so it won't interfere with OFDM
	clear xmit				% remove 'xmit' so it won't interfere with OFDM
	
	disp('Receiving')			% Recover Binary data (Decode QAM)
	cos_temp = zeros(1,num_symbol_samples);		%
	sin_temp = cos_temp;					%
	xxx = zeros(1,data_length/4);				% Initialize to zeros for speed
	yyy = xxx;								%
	QAM_data_out_4 = zeros(1,data_length/2);		%
	
	for i = 1:2:data_length/2	% "cheating"
		for k = 1:num_symbol_samples
			% multiply by carriers to produce high frequency term and original data
			cos_temp(k) = QAM_rx_data(k+((i-1)/2)*num_symbol_samples) * cos(ts(k));
			sin_temp(k) = QAM_rx_data(k+((i-1)/2)*num_symbol_samples) * sin(ts(k));
		end
		% LPF and decide - we will do very simple LPF by averaging
		xxx(1+(i-1)/2) = mean(cos_temp);
		yyy(1+(i-1)/2) = mean(sin_temp);
		% Reconstruct data in serial form
		QAM_data_out_4(i) = xxx(1+(i-1)/2);
		QAM_data_out_4(i+1) = yyy(1+(i-1)/2);
	end
	
	% Make decision between [-3, -1, 1, 3]
	for i = 1:data_length/2
		if QAM_data_out_4(i) >= 1, QAM_data_out_4(i) = 3;
		elseif QAM_data_out_4(i) >= 0, QAM_data_out_4(i) = 1;
		elseif QAM_data_out_4(i) >= -1, QAM_data_out_4(i) = -1;
		else QAM_data_out_4(i) = -3;
		end
	end
	
	% Convert 4 level data [-3, -1, 1, 3] back to polar data [-1, 1]
	QAM_data_out_pol = zeros(1,data_length);	% "cheating"
	for i = 1:2:data_length
		switch QAM_data_out_4(1 + (i-1)/2)
			case -3
				QAM_data_out_pol(i) = -1;
				QAM_data_out_pol(i+1) = -1;
			case -1
				QAM_data_out_pol(i) = -1;
				QAM_data_out_pol(i+1) = 1;
			case 1
				QAM_data_out_pol(i) = 1;
				QAM_data_out_pol(i+1) = -1;
			case 3
				QAM_data_out_pol(i) = 1;
				QAM_data_out_pol(i+1) = 1;
			otherwise
				disp('Error detected in switch statment - This should not be happening.');
		end
	end
	QAM_data_out = pol2bin(QAM_data_out_pol);	% convert back to binary
	
	% Stop stopwatch to calculate how long QAM simulation takes
	QAM_simulation_time = toc;
	if QAM_simulation_time > 60
		disp(strcat('Time for QAM simulation=', num2str(QAM_simulation_time/60), ' minutes.'));
	else
		disp(strcat('Time for QAM simulation=', num2str(QAM_simulation_time), ' seconds.'));
	end
end
%-------------------------------------------------------------------------
%                             OFDM仿真
%-------------------------------------------------------------------------
% 3 % Run OFDM simulation
tic	% Start stopwatch to calculate how long QAM simulation takes
disp(' '),disp('------------------------------------------------------------')
disp('OFDM Simulation')
tx         
ch
rx
% Stop stopwatch to calculate how long QAM simulation takes
OFDM_simulation_time = toc;
if OFDM_simulation_time > 60
	disp(strcat('Time for OFDM simulation=', num2str(OFDM_simulation_time/60), ' minutes.'));
else
	disp(strcat('Time for OFDM simulation=', num2str(OFDM_simulation_time), ' seconds.'));
end

% 3.1發(fā)送
% tx
disp('Transmitting')
read                            %read original data
data_in_pol = bin2pol(data_in);	   % Converts binary data to polar data
tx_chunk                        %convert polar data into chunks.      

% perform ifft to create time domain waveform representing data
td_sets = zeros(num_chunks,fft_size);
for i = 1:num_chunks
	td_sets(i,1:fft_size) = real(ifft(spaced_chunks(i,1:fft_size)));
end

tx_dechunk      % Construct signal to transmit by placing time domain sets in series

% 3.1.1 % tx_chunk    %雙極性數(shù)組轉(zhuǎn)化成OFDM字符串
data_length = length(data_in_pol)			    	%number of symbols in original input
num_carriers
num_chunks = ceil(data_length/(2*num_carriers))	%2 data on each carrier (real and imaginary)
r = rem(data_length,2*num_carriers)
if r ~= 0
	for i = 1:num_carriers*2-r
		data_in_pol(data_length+i) = 0;	%pad input with zeros to complete last data set
	end							%speed improve possible
end

% break data into chunks
chunks = zeros(num_chunks,num_carriers);	% for speed
for i = 1:num_chunks
	% *********************chunk done
	for k = 1:num_carriers
		chunks(i,k) = data_in_pol(2*num_carriers*(i-1)+k) + data_in_pol(2*num_carriers*(i-1)+k+num_carriers)*j;
	end
end

chunks
% Padding chunks with zeros so num_carriers and fft_size are compatible
% Once compatible, further spacing is simplified
num_desired_carriers = num_carriers;
num_zeros = 0;
thinking = 1;
while thinking == 1 % Continue if num_carriers and fft_size are not compatible
	if rem(fft_size/2,num_desired_carriers) == 0
		thinking = 0;
	else
		num_desired_carriers = num_desired_carriers + 1;
		num_zeros = num_zeros + 1;
	end
end

padded_chunks = zeros(num_chunks,num_carriers + num_zeros); % for speed
padded_chunks(1:num_chunks,num_zeros + 1:num_carriers + num_zeros) = chunks;


%compute zeros_between
zeros_between = ((fft_size/2) - (num_carriers + num_zeros))/(num_carriers + num_zeros);

spaced_chunks = zeros(num_chunks,fft_size); % for speed - extra room for folding later
%add zeros_between
i = 1;
for k = zeros_between +1:zeros_between +1:fft_size/2
	spaced_chunks(1:num_chunks,k) = padded_chunks(1:num_chunks,i);
	i = i+1;
end

% folding data to produce an odd function for ifft input
for i = 1:num_chunks
	% Note: index = 1 is actually DC freq for ifft -> it does not get copied over y-axis
	spaced_chunks(i,fft_size:-1:fft_size/2+2) = conj(spaced_chunks(i,2:fft_size/2));
end

% 3.1.2 tx_dechunk
% tx_dechunk

% Construct signal to transmit by placing time domain sets in series
xmit = zeros(1,num_chunks*fft_size);
for i = 1:num_chunks
	for k = 1:fft_size
		xmit(k + (i-1)*fft_size) = td_sets(i,k);
	end
end

% 3.2 %ch.m
% ch
recv = xmit;	% channel is applied to recv, don't modify transmitted data
if channel_on == 1
	disp('Simulating Channel')
	norm_factor = max(abs(recv));	% Normalize all data before applying
	recv = (1/norm_factor) * recv;	% channel for a fair comparison
	ch_clipping                     %clipp data
	ch_multipath                    %
	ch_noise                        %
	recv = norm_factor * recv;		% Restore data magnitude for proper decoding
end

% 3.2.1 %ch_clipping.m
% ch_clipping
for i = 1:length(recv)
	if recv(i) > clip_level
		recv(i) = clip_level;
	end
	if recv(i) < -clip_level
		recv(i) = -clip_level;
	end
end

% 3.2.2 % ch_multipath                  % 產(chǎn)生多經(jīng)的方法
copy1=zeros(size(recv));

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品999在线播放| 欧美中文字幕亚洲一区二区va在线 | 欧美成人三级在线| 久久精品国产久精国产| 欧美大尺度电影在线| 国产福利精品一区| 中文字幕一区av| 日本电影欧美片| 日韩极品在线观看| 欧美一区二区女人| 国内不卡的二区三区中文字幕| 精品国产人成亚洲区| 国产传媒久久文化传媒| 中文字幕日韩一区二区| 欧美色图免费看| 韩国一区二区三区| 日韩一区中文字幕| 欧美精品久久天天躁| 九九久久精品视频| 国产精品二区一区二区aⅴ污介绍| 99热在这里有精品免费| 午夜欧美电影在线观看| 26uuu精品一区二区| 91免费在线视频观看| 蜜臀av亚洲一区中文字幕| 久久久国产一区二区三区四区小说 | 亚洲国产精品t66y| 91久久一区二区| 另类成人小视频在线| 中文字幕在线不卡视频| 欧美男生操女生| 成人性色生活片| 午夜激情久久久| 国产精品免费视频观看| 欧美妇女性影城| 成人午夜在线播放| 日韩精品福利网| 国产精品国产三级国产a | 欧美大度的电影原声| 9人人澡人人爽人人精品| 日韩电影在线观看一区| √…a在线天堂一区| 日韩精品最新网址| 欧洲一区二区三区在线| 国产成人精品免费网站| 婷婷开心激情综合| 亚洲精品视频免费看| 337p日本欧洲亚洲大胆色噜噜| 91国在线观看| 成人激情小说乱人伦| 青青草精品视频| 亚洲小少妇裸体bbw| 国产精品久久久久久久裸模 | 美腿丝袜亚洲三区| 亚洲一区二区三区四区五区黄| 欧美激情一区二区三区四区| 欧美一区午夜精品| 欧美视频完全免费看| 成人黄色a**站在线观看| 国产又黄又大久久| 青青草原综合久久大伊人精品| 一级日本不卡的影视| 中文字幕一区二区三区乱码在线| 久久久久国产精品厨房| 精品国产三级a在线观看| 欧美一区二区三区日韩视频| 在线观看国产91| 色94色欧美sute亚洲线路二| 成人手机在线视频| 国产高清不卡一区二区| 国产乱码精品一品二品| 久久超碰97中文字幕| 日韩电影免费在线| 青青国产91久久久久久| 日韩国产欧美在线播放| 午夜精品久久久久久不卡8050| 亚洲美女精品一区| 亚洲欧美日韩在线| 亚洲免费观看视频| 17c精品麻豆一区二区免费| 中文字幕中文字幕一区二区| 国产精品免费免费| 国产精品久久久久久久久免费丝袜 | 国产成人精品aa毛片| 国产成人精品免费视频网站| 福利一区在线观看| 国产成人av一区二区| av中文字幕不卡| 日本精品裸体写真集在线观看| 欧美综合视频在线观看| 欧美日韩视频专区在线播放| 91精品国产综合久久精品图片| 日韩网站在线看片你懂的| 精品久久久久久久久久久久久久久 | 欧美体内she精高潮| 在线电影国产精品| 欧美α欧美αv大片| 欧美极品aⅴ影院| 亚洲日本中文字幕区| 亚洲国产婷婷综合在线精品| 天堂精品中文字幕在线| 精品中文av资源站在线观看| 国产成人免费视频一区| 色国产综合视频| 日韩欧美一级二级| 国产精品久久久久一区二区三区| 一区二区三区中文字幕电影| 男人的天堂亚洲一区| 国产91在线看| 欧洲av一区二区嗯嗯嗯啊| 欧美一区二区三区视频免费播放| 久久精品欧美日韩精品 | 亚洲国产综合人成综合网站| 日本亚洲欧美天堂免费| 国产91高潮流白浆在线麻豆| 欧美在线一二三四区| 精品国产sm最大网站| 国产精品美女久久久久久久网站| 亚洲图片一区二区| 国产激情一区二区三区四区| 欧美丝袜第三区| 国产欧美精品一区二区色综合| 亚洲午夜在线电影| 国产凹凸在线观看一区二区| 欧美三级乱人伦电影| 亚洲国产精品av| 美腿丝袜亚洲色图| 在线观看一区日韩| 国产欧美一区二区精品婷婷| 亚洲一区二区三区国产| 国产很黄免费观看久久| 欧美日韩国产免费| 中文字幕日本乱码精品影院| 免费日韩伦理电影| 日本久久一区二区| 国产欧美精品区一区二区三区| 日韩av电影免费观看高清完整版在线观看 | 在线电影欧美成精品| 中文字幕综合网| 国产成人av电影在线播放| 91精品国产综合久久婷婷香蕉 | 国产99久久久久| 日韩精品中文字幕在线不卡尤物| 亚洲欧美激情小说另类| 国产精品一区二区在线播放 | 精品国产乱码久久久久久蜜臀| 亚洲视频在线一区二区| 国产精品18久久久久久久网站| 7777精品久久久大香线蕉| 亚洲乱码一区二区三区在线观看| 国产电影一区在线| 精品国产自在久精品国产| 日日摸夜夜添夜夜添亚洲女人| 在线观看不卡一区| 亚洲欧美福利一区二区| eeuss国产一区二区三区| 久久在线观看免费| 国内精品第一页| 精品国产乱码久久久久久图片| 免费久久99精品国产| 欧美性大战xxxxx久久久| 一区二区三区精品在线观看| 色噜噜狠狠成人网p站| 亚洲乱码国产乱码精品精小说| 国产一区二区三区四区五区入口| 日韩欧美视频在线| 久久成人免费网| 26uuu亚洲婷婷狠狠天堂| 国内精品第一页| 久久久久久久久久久电影| 韩日av一区二区| 久久久噜噜噜久久中文字幕色伊伊| 日本不卡一区二区| 日韩精品一区二区三区视频| 麻豆精品新av中文字幕| 久久综合国产精品| 国产成人精品影视| 国产精品乱码一区二区三区软件 | 免费在线观看不卡| 91精品午夜视频| 老色鬼精品视频在线观看播放| 欧美一级免费观看| 激情成人综合网| 国产欧美视频一区二区三区| 丁香六月综合激情| 日韩美女视频一区二区 | 一卡二卡三卡日韩欧美| 欧美日韩卡一卡二| 蜜臀久久久久久久| 久久综合视频网| 成人午夜av影视| 亚洲精品ww久久久久久p站| 欧美日韩国产首页| 久久精品99国产国产精| 欧美国产1区2区| 在线观看精品一区| 韩日欧美一区二区三区| 日韩毛片一二三区| 91麻豆精品国产91久久久久久久久| 久久成人久久鬼色|