Actually, there is a link between the 3 concepts that were asked by the TS almost 8 years ago.
The three notions ("wave particle duality", "quantum superposition" and "Heisenbergs' uncertainty relationships" are in fact tightly related to the FUNDAMENTAL ASSUMPTION of quantum theory that there are different incompatible sets of observations of nature. THAT is the fundamental idea behind quantum theory, that there are "incompatible ways of looking at nature".
As pointed out, it is only when quantum theory got a firmer ground that the different concepts fell together as different aspects of the same thing.
Essentially, one postulates in quantum theory that there are different "complete observations" of whatever is the subject of the quantum theory at hand, say M and N, and that to each complete set of observations correspond an exhaustive list of all possible outcomes: the possible outcomes of M are {m1, m2, ....} and the possible outcomes of N are {n1, n2, ....}. The fundamental hypothesis is that if one does a complete observation of the quantum system at hand M, and one has an outcome m_i, then it is impossible to know what would be the outcome if one did N. And vice versa: if one did a complete observation N, and had outcome n_j, then it is impossible to know the outcome if one does M. In other words, the fundamental hypothesis of quantum theory is that there is a way of observing the system, M, that doesn't allow us to know what would be the outcome if one observed the system with observations N. It is impossible to know "entirely" a system's state, that would give us the outcomes of observations M, and observations N. THAT is the core idea of quantum theory.
Now, mathematically, this is represented by having a Hilbert space of which a basis corresponds to each possible outcome of M, so to the entire set of possible outcomes {m1, m2....} corresponds a basis of Hilbert space, each basis vector representing a different outcome ; and by having a DIFFERENT basis in that same Hilbert space that corresponds to the possible outcomes of N. So to {n1, n2, ...} correspond also basis vectors of the Hilbert space, but they are "rotated" from those of M, in such a way that each basis vector corresponding to {n1, ...} has components of all basis vectors corresponding to {m1, ...}.
A typical notation of these basis vectors is ## \{ |n_1> , |n_2> .... \} ## for the basis vectors corresponding to the observation N with possible results n1, n2 ,... respectively. We have another set of basis vectors ## \{ |m_1> , |m_2> ... \} ## for the observation M with possible results m1, m2, ...
This is the "superposition principle" namely, that the basis vectors corresponding to the outcomes of N are linear superpositions of the basis vectors of the outcomes of M. The basis of N maps to the basis of M through a unitary operator.
One can construct "measurement operators" out of the basis vectors. One can construct a set of Hermitean operators corresponding to the complete measurement M (all the "numeric quantities" that make up an observation m1 for instance). They are simply diagonal operators in the corresponding basis (here, the basis corresponding to M), and have the numerical outcomes on their diagonals.
So to measurement M, correspond a set of Hermitean operators, say ## H_M1, H_M2, ... H_M13 ##.
When we apply such an operator to one of the ## | m_i > ## vectors, they turn out the same vector, with a coefficient, corresponding to the real-valued measurement value of that particular outcome and operator.
We can do the same of course for the observation N, and we will also have a set of Hermitean operators ## H_N1 ... H_N5 ##
These operators will be diagonal in the basis corresponding to N.
But of course, the N-operators will not be diagonal in the basis of M, and the M-operators will not be diagonal in the basis of N. They will NOT COMMUTE.
## H_M1 ## commutes of course with ## H_M3 ## because they are diagonal in the same basis. And ## H_N3 ## commutes with ## H_N4## because they too, are diagonal in the same basis. But ## H_M1 ## doesn't commute with ## H_N3##, because they are diagonal in different bases.
That's the non-commutativity between incompatible observations. It was BUILT IN. The whole of quantum theory was on purpose constructed to obtain this.
One can show that the "amount" of superposed basis vectors of the M basis, needed to construct a basis vector of the N basis, is related to this non-commutativity. That is Heisenberg's uncertainty relationship: you need "many possible outcomes" of M in order to make a "certain outcome" of N.
Finally, the "wave particle" duality is an application of all this to the quantum mechanics of a SINGLE PARTICLE.
One "complete observation" is the position in space of the particle which we will note by the observation X. The postulated incompatible observation is the momentum of the particle, which we will denote by the observation P.
In 3-dim space, X can be represented by 3 quantities: x, y and z. We have 3 Hermitean operators corresponding to that, ## H_x, H_y, H_z ##.
We also have observation P to be represented by 3 quantities, px, py and pz. We also have 3 Hermitean operators corresponding to that ## H_px, H_py, H_pz ##
It turns out that a basis vector corresponding to a position ## | x, y, z > ## can be written as a superposition of all the momentum basis vectors ## | px, py, pz > ## and vice versa.
So a specific basis vector of momentum will have contributions of all position basis vectors.
Now, there's a way to express the coefficients of each of these basis vectors, and that will be a coefficient per position basis vector. But that's nothing else but a coefficient corresponding to every position (x, y, z).
We can write that as a "function of x, y, z" ## \Psi(x,y,z) ##. But that looks like a complex function "in space".
That was the "wave" in "wave mechanics", and the "wave particle duality" came about because according to the observations we did on a particle, we had it as a "position" (which we called "particle") or as a "momentum" which corresponded to a superposition of "positions", also called "a wave".
The "wave particle" duality was nothing else but the postulated incompatibility of the observation of momentum and of position, applied to a system of a single particle.
If you had measured the position, you had no idea about the momentum ; if you had measured the momentum, you had no idea about the position. That's Heisenberg's uncertainty.
Of course, once you have two complete sets of incompatible measurements, M and N (or X and P in our single particle case), you can find still other incompatible sets of measurements. They have still other basis vectors in the same Hilbert space, which are superpositions of the other basis vectors.