Here's what Google Gemini told me:
https://g.co/gemini/share/2583583ca5ad
I can't assess correctness, but it sounds plausible.
In the OIRT system, polar modulation is used to modulate the main carrier, not the subcarrier.
Fs = 384000; % sample rate
N = length(L) % sample count
t = (0:N-1).' / Fs; % time vector
% Build sum and difference
add_LR = (L + R) / 2; % sum channel
sub_LR = (L - R) / 2; % difference channel
pilot = 19000; % pilot tone frequency 19 kHz
subcf = pilot*2; % sub-carrier frequency 38 kHz
pilot = cos(2*pi*pilotf*t); % pilot tone 19 kHz
c38 = -sin(2 * 2*pi*pilotf*t); % carrier 2*19=38 kHz
dsbsc = sub_LR .* c38;
% Composite baseband signal (L+R + pilot + DSB-SC)
composite = 0.45*add_LR + 0.1*pilot + 0.45*dsbsc;
subcf = 31250; % sub-carrier frequency 31.25 kHz
c3125 = sign(cos(2*pi*subcf*t)); % squarewave subcarrier
polar = 0.2*c3125 + sub_LR .* c3125;
% Apply bandpass filter with center frequency 31.25 kHz ±15 kHz
polar = filtfilt(bpf_31250, 1, polar);
% Composite baseband signal (L+R + polar)
composite = 0.45*add_LR + 0.45*polar;
c3125 = cos(2*pi*subcf*t); % sine wave subcarrier
polar = 0.2*c3125 + sub_LR .* c3125;
% Composite baseband signal (L+R + polar)
composite = 0.45*add_LR + 0.45*polar;
L = (add_LR + sub_LR) / 2;
R = (add_LR - sub_LR) / 2;
Here's what Google Gemini told me:
https://g.co/gemini/share/2583583ca5ad
I can't assess correctness, but it sounds plausible.
It seems the Gemini AI response introduces some confusion here. It states:QuoteIn the OIRT system, polar modulation is used to modulate the main carrier, not the subcarrier.
which is clearly incorrect. In fact, polar modulation in the OIRT stereo system refers to the modulation of the stereo subcarrier in the composite signal, not the main FM carrier itself.

Yes, based on all technical sources, pure FM for the main carrier is the correct and only method used in both the OIRT and CCIR standards.
The "polar modulation" that has caused so much confusion does not refer to the modulation of the main carrier. It is a historical term used to describe a specific way that the stereo information is encoded and combined with the mono signal before it ever reaches the main transmitter.
Main Carrier vs. Composite Signal
Think of the process in two steps:
The Composite Baseband Signal: This is the complete audio signal, which contains all the necessary components for both mono and stereo reception.
It includes the L+R signal (the mono sound).
It includes the stereo subcarrier (the L-R signal modulated onto a subcarrier, either at 31.25 kHz for OIRT or 38 kHz for CCIR).
It might also include other data signals like RDS.
The Main FM Carrier: This is the powerful radio wave that is actually broadcast from the tower. The entire composite baseband signal from the first step is used to frequency-modulate (FM) this main carrier. The main carrier's frequency is shifted up and down according to the instantaneous amplitude of the composite signal.
In both the OIRT and CCIR systems, the main carrier's modulation is strictly FM. The difference between the two systems is in what makes up the composite signal, not in how that composite signal modulates the main carrier.
Based on my sources, the OIRT FM stereo subcarrier uses Amplitude Modulation (AM). Specifically, it uses Double Sideband Reduced Carrier (DSB-RC) AM.
The alternative, and incorrect, claim that it uses FM is a major point of confusion. Here is the reason why the AM explanation is technically sound and the FM explanation is not:
Synchronization: The primary difference between the OIRT and CCIR standards is how the receiver decodes the stereo signal. The OIRT system's 31.25 kHz subcarrier is intentionally transmitted at a low, "reduced" amplitude (about 14 dB below the main signal). A receiver's phase-locked loop (PLL) uses this partially transmitted carrier to synchronize with and demodulate the stereo signal.
Technical Impossibility of FM Suppression: The concept of "partially suppressing" a carrier only applies to amplitude-modulated signals. The amplitude of an FM signal is constant; all the information is encoded in its frequency changes. You cannot reduce its amplitude for synchronization without losing the information it's carrying.
The term "polar modulation" is a historical misnomer that has contributed to this confusion. In this context, it describes the OIRT system's method of combining stereo signals in a way that is different from the CCIR system, but it does not accurately describe the subcarrier's actual modulation. The subcarrier itself is still amplitude-modulated.
I don't have direct access to the original, official standards for the OIRT or CCIR systems. These are historical documents not available in my training data, which consists of publicly accessible online text. My information is based on secondary sources, such as technical summaries, forum discussions, and educational texts that describe the standards. This reliance on secondary sources is why my previous explanations contained inconsistencies.
2.1.2.2 A signal S is produced equal to one half of the difference between signals A and B mentioned above. This signal, S, is pre-emphasized in the same way as signal M. The pre-emphasized signal, S, is used for the amplitude modulation of a sub-carrier at 31.25 kHz; the spectrum of the amplitude-modulated sub-carrier is formed so that the sub-carrier amplitude is reduced by 14 dB and the spectral components of the given modulating signal appear to be transformed as follows:
\$\overline{K}(f) = \frac{1 + j\,6.4 f}{5 + j\,6.4 f}\$
where f is equal to each frequency component (kHz).
2.1.2.3 The stereophonic multiplex signal is the sum of:
– the pre-emphasized signal, M;
– the sideband spectral components which are the product of amplitude-modulated unsuppressed carrier by a pre-emphasized signal S additionally transformed from the law \$\overline{K}(f)\$
– the sub-carrier with the amplitude reduced by 14 dB.
2.1.2.4 The amplitudes of the various components of the stereophonic multiplex signal, referred to the maximum amplitude of that signal (which corresponds to the maximum frequency deviation) are:
– signal M : maximum value 80% (A and B being equal, and in phase);
– signal S : maximum value 80% (A and B being equal but of opposite phase);
– reduced sub-carrier at 31.25 kHz; maximum residual amplitude 20%.
2.1.2.5 The frequency modulation is arranged in such a way that positive values of the multiplex signal correspond to a positive frequency deviation of the main carrier and negative values to negative frequency deviation.
From the text it is not entirely clear whether the spectrum of the AM-modulated signal should be corrected according to K(f), or if the more correct approach is simply to combine the full DSB-SC amplitude with the carrier attenuated by -14 dB.
If anyone has an old radio receiver with an OIRT stereo decoder, or access to a local OIRT stereo broadcast, I would greatly appreciate it if you could let me know.
For one of them, 69.47 MHz, my old receiver indicates a stereo signal (just checked).
Perhaps you can use a WebSDR connection to view the signal
How many samples are needed? For me, the simplest option seems to capture the baseband signal with Rigol DS1054Z scope (check the specs. It's the only digitizing scope I have)

Ok then. Take the receiver apart, blow the dust off and capture the signal. Will do it on the next week (hopefully). BTW for better anti-aliasing, I can arrange a simple passive LP filter (two res, two caps) with the cutoff frequency of about 100 kHz
Yes, that’s exactly the confusing part. There are many references claiming that OIRT used some kind of “polar modulation”, but I suspect there is some kind of a misinterpretation. From what I can see, the system probably is essentially the same as CCIR stereo: the baseband carries L+R, and the 31.25 kHz subcarrier is DSB-modulated with L−R, only with the subcarrier left partially suppressed (at −14 dB) rather than fully suppressed as in CCIR.
The question then is: where do all the statements about direct diode decoding come from? The article above even includes a schematic with nothing more than two diode detectors and RC filters. This seems questionable — could such a simple circuit really decode a stereo signal in which the subcarrier is modulated with L−R?
pkg load signal
fs = 1e6
fsub = 31250
audiobw = 15000
SKIP = 20000
N = 100000 + SKIP
% generate bandwith-limited random L and R signals
L = 2 * rand(1,N) - 1;
R = 2 * rand(1,N) - 1;
[n,Wn,beta,ftype] = kaiserord([0.95*audiobw audiobw],[1 0],[0.0001 0.0001],fs);
hnoise = fir1(n,Wn,ftype,kaiser(n+1,beta),"noscale");
L = filter(hnoise,1,L);
R = filter(hnoise,1,R);
L /= max(abs(L));
R /= max(abs(R));
% L = cos(2*pi*2000*[0:N-1]/fs);
% R = cos(2*pi*3000*[0:N-1]/fs);
% subcarrier
subc = cos(2*pi*fsub*[0:N-1]/fs);
% asymmetric AM
composite = max(0,subc) .* (1 + L) + min(0,subc) .* (1 - R);
% limit BW of composite signal
[n,Wn,beta,ftype] = kaiserord([fsub+audiobw 2*fsub-audiobw],[1 0],[0.0001 0.0001],fs);
hcomp = fir1(n,Wn,ftype,kaiser(n+1,beta),"noscale");
composite = filter(hcomp,1,composite);
% lowpass after rectifier
[n,Wn,beta,ftype] = kaiserord([audiobw fsub-audiobw],[1 0],[0.0001 0.0001],fs);
hbb = fir1(n,Wn,ftype,kaiser(n+1,beta),"noscale");
LR1 = [L; R; ones(1,N)];
% compensate filter delays
delay = (length(hcomp)-1)/2 + (length(hbb)-1)/2
printf("Factor analysis of lowpass filtered composite signal:\n");
x = filter(hbb,1,composite);
lr1 = x(SKIP+1:end) * pinv(circshift(LR1,delay,2)(:,SKIP+1:end));
resid = x(SKIP+1:end) - lr1*circshift(LR1,delay,2)(:,SKIP+1:end);
printf(" mono: %9.6f * L + %9.6f * R + %9.6f + resid, std(resid) = %.6f\n", lr1, std(resid));
printf("Factor analysis of rectified + lowpass filtered composite signal:\n");
x = filter(hbb,1,max(0,composite));
lr1 = x(SKIP+1:end) * pinv(circshift(LR1,delay,2)(:,SKIP+1:end));
resid = x(SKIP+1:end) - lr1*circshift(LR1,delay,2)(:,SKIP+1:end);
printf(" positive: %9.6f * L + %9.6f * R + %9.6f + resid, std(resid) = %.6f\n", lr1, std(resid));
x = filter(hbb,1,min(0,composite));
lr1 = x(SKIP+1:end) * pinv(circshift(LR1,delay,2)(:,SKIP+1:end));
resid = x(SKIP+1:end) - lr1*circshift(LR1,delay,2)(:,SKIP+1:end);
printf(" negative: %9.6f * L + %9.6f * R + %9.6f + resid, std(resid) = %.6f\n", lr1, std(resid));
fs = 1000000
fsub = 31250
audiobw = 15000
delay = 4012
Factor analysis of lowpass filtered composite signal:
mono: 0.317287 * L + 0.317287 * R + -0.000000 + resid, std(resid) = 0.000005
Factor analysis of rectified + lowpass filtered composite signal:
positive: 0.316714 * L + 0.000577 * R + 0.320410 + resid, std(resid) = 0.002654
negative: 0.000573 * L + 0.316710 * R + -0.320410 + resid, std(resid) = 0.002654
After limiting the bandwith to 46.25 kHz, demodulation with two ideal diodes is still possible, but it is no longer perfect:
a) separation between L and R is no longer perfect, but still not too bad.
b) Besides L, R and DC components, the 0-15kHz spectrum contains some residual components(noise/distortion). Still not sure where it comes from; I guess IMD introduced by the rectification. The residual component is larger when L and R are two sine waves, and smaller when L and R are wideband signals.
Hm... so, if I understand correctly, it means that the stereo composite can indeed be demodulated using just two diodes, but the result will not be perfect in quality?
... but the result will not be perfect in quality