Skip to main content

Posts

Search

Search Search Any Topic from Any Website Search
Recent posts

mmWave Precoder using MATLAB

  MATLAB Code close all; clear; rng('shuffle'); clc; % Simulation parameters t = 32; % Number of Tx/Rx Antennas r = 32; % Number of Tx/Rx Antennas numRF = 6; % Number of RF Chains G = 64; % Grid Size L = 8; % Grid Size Ns = 6; % Sparsity level ITER = 100; % Number of iterations % Initializations H = zeros(r,t); % Channel matrix SNRdB = -5:1.5:15; % SNR in dB C_HYB = zeros(length(SNRdB), 1); % Capacity of Hybrid MIMO C_MIMO = zeros(length(SNRdB), 1); % Capacity of Conventional MIMO A_T = zeros(t, G); % Transmit response matrix A_R = zeros(r, G); % Receive response matrix % Generate transmit array response matrix for l = 1:G dirCos = 2/G*(l-1) - 1; % Direction cosine for each grid point for K = 1:t A_T(K, l) = 1/sqrt(t) * exp(-j*pi*(K-1)*dirCos); end end % Assume A_R = A_T for simplicity A_R = A_T; % Main simulation loop for iter1 = 1:ITER % ===== Channel Generation ===== A_T_genie = zeros(t, L); A_R_genie = zeros(r, L); % Generate AoD/AoA uniformly in grid AoDlist = ran...

Orthogonal Matching Pursuit (OMP) in MATLAB

  MATLAB Code clc; clear; close all; % Given measurement matrix Q (4x6) Q = [1 0 1 0 0 1; 0 1 1 1 0 0; 1 0 1 0 1 0; 0 1 0 1 1 1]; % Given measurement vector y (4x1) y = [0; 2; 3; 5]; % Sparsity level (number of nonzero entries to find) L = 2; % you can adjust this based on expected sparsity % --- OMP Algorithm --- r = y; % Initial residual support = []; % Index set x_hat = zeros(size(Q, 2), 1); % Sparse solution initialization for l = 1:L % Step 1: Find column most correlated with residual proj = abs(Q' * r); [~, idx] = max(proj); support = unique([support, idx]); % Step 2: Solve LS for chosen support Qs = Q(:, support); x_s = pinv(Qs) * y; % Step 3: Update residual r = y - Qs * x_s; % Optional stopping condition if norm(r) < 1e-6 break; end end % Step 4: Construct full sparse vector x_hat(support) = x_s; % Display results disp('Selected atom indices (support):'); disp(support); disp('Recovered sparse signal x_hat:'); disp(x_hat); disp('Res...

mmWave Channel Estimation using MATLAB

  MATLAB Code clc; close all; clear all; rng('shuffle'); % Simulation parameters t = 32;              % Number of Tx antennas r = 32;              % Number of Rx antennas numRF = 8;           % Number of RF Chains N_Beam = 24;         % Number of Pilot Symbols G = 32;              % Grid Size ITER = 10;           % Number of iterations L = 5;               % Sparsity level % Initializations omp_thrld = 1; kp = zeros(t * r, L); SNRdB = 10:10:50; mseOMP = zeros(length(SNRdB), 1); mseGenie = zeros(length(SNRdB), 1); % G-quantized Tx/Rx array response matrices A_T = zeros(t, G); A_R = zeros(r, G); % ------------------------------ % Generate Array Response Matrices % ------------------------------ for l = 1:G     dirCos = 2/G * (l - 1) - 1; ...

Ph.D. admissions in IITs without a GATE score

PhD Admission in IITs With Low CGPA approximately 6.5 – 7.0 / 10 No valid GATE score Willing to strengthen research proposal, contact faculty, apply to multiple institutes Expanded List of IITs: Eligibility & Links IIT Eligibility & Notes PhD Info Link IIT Gandhinagar Minimum: 60% marks or 6.0 CGPA (General) or 55%/5.5 (SC/ST/PD) in qualifying degree.  GATE/NET may be waived in certain cases; but short‑listing criteria likely higher. iitgn.ac.in/admissions/phd IIT Kharagpur Minimum eligibility: 60% marks or 6.5 CGPA in qualifying exam for many branches.  However brochure notes “for test & interview this minimum must be met and higher cut‑offs may apply”. iitkgp.ac.in/phd_brochure.pdf IIT Bhubaneswar Minimum: Engineering Schools – M.Tech/ME with minimum 60% marks or 6.5 CGPA....

What’s happening inside a Convolutional Neural Network (CNN)?

In general, a Convolutional Neural Network (CNN) consists of an input layer, hidden layers, and an output layer. Real-world CNNs are nonlinear because they include activation functions that introduce nonlinearity. In our case, the model takes a single input, which is passed to a 13-dimensional linear layer, followed by a nonlinear 13-dimensional tanh activation layer. The output from this layer is then passed through another 13-dimensional linear layer that produces a single output value. Linear layers contain weights and biases , following the equation y = mx + b , while the tanh activation function outputs values in the range [-1, 1] . 1. What’s happening overall The text explains how PyTorch stores and updates the weights and biases (called parameters ) of a small neural network built using nn.Sequential . A “parameter” is just a number that the model can learn, like weights and biases. 2. model.parameters() When you call model.pa...

Orthogonal Time Frequency Space (OTFS)

In OTFS (Orthogonal Time Frequency Space) modulation — a scheme designed for high-Doppler and time-varying wireless channels — the terms ISFFT and SFFT are key mathematical transformations used to move between different representation domains. Figure: OTFS block diagram 1. ISFFT — Inverse Symplectic Finite Fourier Transform Purpose: Transforms data symbols from the delay-Doppler domain to the time-frequency domain . \[ X[n, m] = \frac{1}{\sqrt{NM}} \sum_{k=0}^{N-1} \sum_{l=0}^{M-1} x[k, l] \, e^{j2\pi \left( \frac{nk}{N} - \frac{ml}{M} \right)} \] Here, \( N \) is the number of Doppler bins (time slots), and \( M \) is the number of delay bins (subcarriers). The ISFFT maps each data symbol from the delay-Doppler grid (where the channel is sparse and easier to equalize) to the time-frequency grid (where standard multicarrier modulation like OFDM can be applied). 2. SFFT — Symplectic Finite Fourier Transform Purpose: Performs the reverse operation —...

Comparison of Spectral Estimation Methods in MATLAB: Periodogram, Welch, Bartlett, and More

MATLAB Code   % MATLAB script to compare different Spectral Estimation Methods using Built-in Functions % Sample signal: Sine wave with noise fs = 1000; % Sampling frequency (Hz) T = 1; % Signal duration (seconds) t = 0:1/fs:T-1/fs; % Time vector f_signal = 50; % Signal frequency (Hz) signal = sin(2*pi*f_signal*t) + 0.5*randn(size(t)); % Sine wave + noise % Method 1: Periodogram (Using built-in function) [pxx_periodogram, f_periodogram] = periodogram(signal, [], [], fs); % Method 2: Bartlett Method (Using built-in pwelch with default settings) [pxx_bartlett, f_bartlett] = pwelch(signal, [], [], [], fs); % Method 3: Welch Method (Using built-in pwelch with segment overlap) segmentLength = 256; % Length of each segment overlap = 128; % Overlap between segments [pxx_welch, f_welch] = pwelch(signal, segmentLength, overlap, [], fs); % Method 4: Blackman-Tukey Method (Using built-in cpsd function with autocorrelation) % Compute the Cross Power Spectral Density (CPSD) using autocorrelatio...

Aliasing in Signal Processing: Nyquist-Shannon Theorem & Best Practices for Downsampling and Upsampling

Aliasing in Signal Processing 1. Nyquist-Shannon Sampling Theorem (Standard) This is the foundational principle for preventing aliasing in both downsampling and upsampling: The signal must be sampled at least at twice the highest frequency component in the signal (i.e., the sampling rate should be greater than or equal to twice the maximum frequency, known as the Nyquist rate). Mathematically: fs ≥ 2 × fmax Where: fs is the sampling rate. fmax is the maximum frequency present in the signal. For a signal with frequency content up to fmax , the Nyquist rate is 2 × fmax . If you violate this and sample below this threshold, aliasing will occur.   Aliasing in Signal Processing Aliasing is a phenomenon that occurs when a continuous signal (or sampled signal) is undersampled during digital signal processing. This results in different signals becoming indistinguishable from each other when samp...

People are good at skipping over material they already know!

View Related Topics to







Contact Us

Name

Email *

Message *