📄 multipath.m
字号:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Copyright (c) __year__ Ericsson Telecommunicatie B.V. % All rights reserved. % % Redistribution and use in source and binary forms, with or without % modification, are permitted provided that the following conditions % are met: % 1. Redistributions of source code must retain the above copyright % notice, this list of conditions and the following disclaimer. % 2. Redistributions in binary form must reproduce the above copyright % notice, this list of conditions and the following disclaimer in the % documentation and/or other materials provided with the % distribution. % 3. Neither the name of Ericsson Telecommunicatie B.V. may be used % to endorse or promote products derived from this software without % specific prior written permission. % % % THIS SOFTWARE IS PROVIDED BY ERICSSON TELECOMMUNICATIE B.V. AND % CONTRIBUTORS "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, % INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF % MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. % IN NO EVENT SHALL ERICSSON TELECOMMUNICATIE B.V., THE AUTHOR OR HIS % CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, % EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, % PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR % PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY % OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT % (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE % OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. % % % Contact for feedback on EURANE: eurane@ti-wmc.nl % EURANE = Enhanced UMTS Radio Access Network Extensions % website: http://www.ti-wmc.nl/eurane/ %% ***************************************************************************%% UMTS-HSDPA channel generator % % [omega] = omega(samples,rayleigh_fades,fD,spectrum)%% Generate multipath fading.% This function is called for each ray.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%function [omega] = omega(samples,rayleigh_fades,fD,spectrum)% Frequency vector. fD/rayleigh_fades is fundamental frequencyf = (-samples/2:samples/2-1)*fD/rayleigh_fades; % Prevent divide by zero on doppler constructionneg_index=samples/2+1-rayleigh_fades; % index of negative doppler frequencyf(neg_index)=f(neg_index+1);pos_index=samples/2+1+rayleigh_fades; % index of positive doppler frequencyf(pos_index)=f(pos_index-1);% Generate Doppler spectrumDoppler_filter = zeros(samples,1);if strcmp(spectrum,'Jackes') % Doppler Jakes filter Doppler_filter(neg_index:pos_index) = sqrt(1./(sqrt(1-(f(neg_index:pos_index)./fD).^2)));else % Doppler flat filter Doppler_filter(neg_index:pos_index) = sqrt(f(neg_index:pos_index));endDoppler_filter = fftshift(Doppler_filter);% Filter random samples in frequency domainxf = real(ifft(fft(randn(samples,1)).*Doppler_filter));yf = real(ifft(fft(randn(samples,1)).*Doppler_filter));% omega (not normalized); power of complex signalomega = (abs(complex(xf,yf))).^2;% Normalizeomega = omega./mean(omega);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -